Techniques for social messaging authorization and customization

ABSTRACT

Techniques for social messaging authorization and customization are described. In one embodiment, an apparatus may comprise a commerce intermediary server operative to receive, from a network interface, an order request package from a client device, the order request specifying a user account and a commerce account, the user account associated with a user entity in a social graph data structure, the commerce account associated with a commerce entity in the social graph data structure and transmit the order request package to a commerce front-end server associated with the commerce entity; and a social graph data structure component operative to create a commerce edge in the social graph data structure between the user entity and the commerce entity in response to the commerce intermediary server receiving the order request package from the client device, the commerce edge associated with the order request package. Other embodiments are described and claimed.

RELATED APPLICATIONS

This application claims the benefit of priority under 35 U.S.C. §119(e)to U.S. Provisional Patent Application No. 62/138,337, titled“Techniques for Social Messaging Authorization and Customization,” filedon Mar. 25, 2015, which is hereby incorporated by reference in itsentirety.

This application claims the benefit of priority under 35 U.S.C. §119(e)to U.S. Provisional Patent Application No. 62/138,341, titled“Techniques for Product, Service, and Business Recommendation,” filed onMar. 25, 2015, which is hereby incorporated by reference in itsentirety.

This application claims the benefit of priority under 35 U.S.C. §119(e)to U.S. Provisional Patent Application No. 62/138,344, titled“Techniques for Automated Messaging,” filed on Mar. 25, 2015, which ishereby incorporated by reference in its entirety.

This application is related to the United States Patent Applicationtitled “Techniques for Automated Determination of Form Responses,” filedon Jul. 21, 2015, which is hereby incorporated by reference in itsentirety.

This application is related to the United States Patent Applicationtitled “Techniques for Product, Service, and Business Recommendation,”filed on Jul. 21, 2015, which is hereby incorporated by reference in itsentirety.

This application is related to the United States Patent Applicationtitled “Techniques for Automated Messaging,” filed on Jul. 21, 2015,which is hereby incorporated by reference in its entirety.

BACKGROUND

Users may interact with each other in a messaging system, sendingmessages back and forth to each other in a text-based conversationbetween two or more users. A user may have a user account associatedwith them in the messaging system, the user account providing an onlineidentity for the user, a destination for messages directed to the user,and generally coordinating the user's access to and use of the messagingsystem. A user may access the messaging system from a variety ofendpoints, including mobile devices (e.g., cellphones), desktopcomputers, web browsers, specialized messaging clients, etc.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some novel embodiments described herein. This summaryis not an extensive overview, and it is not intended to identifykey/critical elements or to delineate the scope thereof. Its solepurpose is to present some concepts in a simplified form as a prelude tothe more detailed description that is presented later.

Various embodiments are generally directed to techniques for socialmessaging authorization and customization. Some embodiments areparticularly directed to techniques in which commerce entity access to amessaging system is authorized based on a social networking relationshipbetween the business and messaged users, and in which messaging betweenbusinesses and users is customized according to social networkinginformation. In one embodiment, for example, an apparatus may comprise acommerce intermediary server operative to receive, from a networkinterface, an order request package from a client device, the orderrequest specifying a user account and a commerce account, the useraccount associated with a user entity in a social graph data structure,the commerce account associated with a commerce entity in the socialgraph data structure; and transmit the order request package to acommerce front-end server associated with the commerce entity; and asocial graph data structure component operative to create a commerceedge in the social graph data structure between the user entity and thecommerce entity in response to the commerce intermediary serverreceiving the order request package from the client device, the commerceedge associated with the order request package. Other embodiments aredescribed and claimed.

Various embodiments are generally directed to techniques for automateddetermination of form responses. Some embodiments are particularlydirected to techniques in which natural language processing is used todetermine which of a set of form responses is most appropriate to aparticular natural language query or comment by a user. In oneembodiment, for example, a commerce intermediary server may be operativeto receive a messaging package from a messaging endpoint at a messagingservice; perform a natural language processing of the messaging packageto determine a response message predicted to correspond to the messagingpackage; determine an administrator account assigned to respond to themessaging package; and transmit a form response package to anadministrator messaging endpoint for the administrator account, the formresponse package comprising the response message. Other embodiments aredescribed and claimed.

Various embodiments are generally directed to techniques for product,service, and business recommendation. Some embodiments are particularlydirected to techniques for product, service, and business recommendationleveraging messaging affinity information. In one embodiment, forexample, an apparatus may comprise a user context component operative tomanage a user context associated with a user account for a messagingservice; a user profile component operative to retrieve a user profilefor the user account; and a recommendation component operative todetermine one or more recommendations based on the user context and theuser profile and configure a recommendation interface for a messagingendpoint on a client device based on the recommendations, the messagingendpoint associated with the user account for the messaging service.Other embodiments are described and claimed.

Various embodiments are generally directed to techniques for automatedmessaging. Some embodiments are particularly directed to techniques forautomated business-to-consumer messaging leveraging social-networkinginformation. In one embodiment, for example, an apparatus may comprise auser profile component operative to retrieve a user profile associatedwith a user account for a messaging service; and a messaging automationcomponent operative to receive a messaging initiation from a messagingendpoint on a client device; and configure an automated response basedon the user profile in response to the messaging initiation. Otherembodiments are described and claimed.

To the accomplishment of the foregoing and related ends, certainillustrative aspects are described herein in connection with thefollowing description and the annexed drawings. These aspects areindicative of the various ways in which the principles disclosed hereincan be practiced and all aspects and equivalents thereof are intended tobe within the scope of the claimed subject matter. Other advantages andnovel features will become apparent from the following detaileddescription when considered in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an embodiment of a consumer-to-business messagingsystem.

FIG. 2 illustrates an example of a social graph.

FIG. 3A illustrates an embodiment of a user interface for a messagingendpoint displaying a business page.

FIG. 3B illustrates an embodiment of a user interface for a messagingendpoint displaying an ordering page.

FIG. 3C illustrates an embodiment of a user interface for a messagingendpoint displaying a consumer-to-business messaging interaction.

FIG. 4 illustrates an embodiment of a consumer-to-business serviceprocessing an order request.

FIG. 5 illustrates an embodiment of a consumer-to-business serviceprocessing a follow request.

FIG. 6 illustrates an embodiment of a first logic flow for the system ofFIG. 1.

FIG. 7 illustrates an embodiment of a user interface for anadministrator messaging endpoint displaying a series of receivedmessages.

FIG. 8 illustrates an embodiment of a consumer-to-business servicegenerating an automated response.

FIG. 9 illustrates an embodiment of a second logic flow for the systemof FIG. 1.

FIG. 10A illustrates an embodiment of a user interface for a messagingendpoint displaying a messaging conversation.

FIG. 10B illustrates an embodiment of a user interface for a messagingendpoint displaying a selection and promotion page.

FIG. 10C illustrates an embodiment of a user interface for a messagingendpoint displaying a product page.

FIG. 10D illustrates an embodiment of a user interface for a messagingendpoint displaying an updated messaging conversation.

FIG. 11 illustrates an embodiment of a consumer-to-business serviceproviding an interface configuration to a messaging endpoint.

FIG. 12 illustrates an embodiment of a consumer-to-business serviceproviding a fulfillment update message to a messaging endpoint.

FIG. 13 illustrates an embodiment of a third logic flow for the systemof FIG. 1.

FIG. 14A illustrates an embodiment of a user interface for a messagingendpoint displaying a promoted message.

FIG. 14B illustrates an embodiment of a user interface for a messagingendpoint displaying an automated messaging interaction.

FIG. 14C illustrates an embodiment of a user interface for a messagingendpoint displaying a partially-automated messaging interaction.

FIG. 15A illustrates an embodiment of a user interface for a messagingendpoint displaying a user comment on a promoted message.

FIG. 15B illustrates an embodiment of a user interface for a messagingendpoint displaying an administrator message dialog in response to auser comment.

FIG. 16 illustrates an embodiment of a consumer-to-business servicegenerating an automated response.

FIG. 17 illustrates an embodiment of a fourth logic flow for the systemof FIG. 1.

FIG. 18 illustrates an embodiment of a centralized system for the systemof FIG. 1.

FIG. 19 illustrates an embodiment of a distributed system for the systemof FIG. 1.

FIG. 20 illustrates an embodiment of a computing architecture.

FIG. 21 illustrates an embodiment of a communications architecture.

FIG. 22 illustrates an embodiment of a radio device architecture.

DETAILED DESCRIPTION

Users may engage with a business via a page in a social-networkingservice using messaging communication, as they may be familiar with fromchatting with friends. Users may discover, engage with, and purchaseproducts and services from these businesses in the same messagingapplication they use for communicating with friends, colleagues, andother acquaintances. Some of these messages may be automaticallyresponded to, while others may be responded to fully or partiallymanually by administrators of business pages. A partially-manualresponse may make use of a proposed response identified by a naturallanguage processor, that is automatically presented to the administratorbut that is manually approved before sending. In contrast,fully-automated responses may also be used in which the messagingservice responds without administrator approval. Fully-manual responsemay be used in which the administrator themselves crafts the responsethat is sent to the user. By combining various techniques for discovery,engagement, and messaging, users may presented with the best response totheir particular situation. As a result, the embodiments herein mayimprove the naturalness of communicating with a business while stillleveraging automation techniques where appropriate.

Reference is now made to the drawings, wherein like reference numeralsare used to refer to like elements throughout. In the followingdescription, for purposes of explanation, numerous specific details areset forth in order to provide a thorough understanding thereof. It maybe evident, however, that the novel embodiments can be practiced withoutthese specific details. In other instances, well known structures anddevices are shown in block diagram form in order to facilitate adescription thereof. The intention is to cover all modifications,equivalents, and alternatives consistent with the claimed subjectmatter.

It is worthy to note that “a” and “b” and “c” and similar designators asused herein are intended to be variables representing any positiveinteger. Thus, for example, if an implementation sets a value for a=5,then a complete set of components 122 illustrated as components 122-1through 122-a may include components 122-1, 122-2, 122-3, 122-4 and122-5. The embodiments are not limited in this context.

FIG. 1 illustrates a block diagram for a consumer-to-business messagingsystem 100. In one embodiment, the consumer-to-business messaging system100 may comprise a computer-implemented system having softwareapplications comprising one or more components. Although theconsumer-to-business messaging system 100 shown in FIG. 1 has a limitednumber of elements in a certain topology, it may be appreciated that theconsumer-to-business messaging system 100 may include more or lesselements in alternate topologies as desired for a given implementation.

A consumer-to-business service 110 may serve as an intermediary betweenconsumers and businesses. Consumers and businesses may both be users ofthe consumer-to-business service 110, with consumers represented via anindividual user account and businesses represented by a commerce accountand, possibly, one or more individual user accounts associated with thebusiness, such as individual user account associated withrepresentatives and other employees of the business. A consumer user maybe represented with a user entity entry in a social graph. A business orother commercial user may be represented by a commerce entity in asocial graph. The relationship between the consumer user and thecommercial user may be represented by one or more edges between the userentity and commerce entity in the social graph.

The consumer-to-business service 110 may comprise a messaging service140. The messaging service 140 may be generally arranged to receive,store, and deliver between individual entities such as individual usersand collective entities such as businesses and other organizations. Themessaging service 140 may store messages while messaging endpoints, suchas messaging endpoint 125, are offline and deliver the messages once themessaging endpoints are available. The messaging service 140 may empowera user to use multiple messaging endpoints (e.g., a messaging client ona mobile device, a web browser on a personal computer) for the same useraccount, with the messaging service 140 keeping all of the messagingendpoints up-to-date as to the messaging state of the user account.

The consumer-to-business service 110 may comprise a social networkingservice 170. The social networking service 170 may maintain a socialgraph data structure representing a social graph. The social graph mayrepresent relationships between entities, such as user entities,commerce entities, and any other sort of entity. The social graph mayrepresent the relationships as graph relationships, in which allinformation is encoded as either being attached to a particular node inthe graph or attached to a particular edge between two nodes in thegraph. The social networking service 170 may be an element of asocial-networking service, with the social graph containing, at least inpart, social-networking information. The whole of theconsumer-to-business service 110 may be an element or composed ofelements of a social-networking service.

The consumer-to-business service 110 may comprise a consumer portal 150.The consumer portal 150 may be a unified entry point into theconsumer-to-business service 110 for client applications being used byconsumers. The consumer portal 150 may serve as a general user portalfor non-commerce entities, including users that are not or do not engagein commerce using the consumer-to-business service 110. The consumerportal 150 may provide access to the messaging service 140 and thesocial networking service 170. In some embodiments, all access to thesocial networking service 170 may be mediated by the consumer portal 150in which the information of the social networking service 170 is usedand managed on behalf of the user without the user having direct accessto some or all of the social graph information. In some embodiments, theuser may have direct access to the messaging service 140 using theiruser account, with the consumer portal 150 limited to consumer functionsof the consumer-to-business service 110 with general messagingfunctionality (e.g., messaging with friends) provided through directnetwork communication between the messaging endpoint 125 and themessaging service 140 without the mediation of the consumer portal 150.

The consumer-to-business service 110 may comprise a business portal 160.The business portal 160 may be a unified entry point into theconsumer-to-business service 110 for client application being used bybusiness entities. The business portal 160 may provide access to themessaging service 140 and the social networking service 170. In someembodiments, all access to the social networking service 170 may bemediated by the business portal 160 in which the information of thesocial networking service 170 is used and managed on behalf of thecommerce entity without the commerce entity having direct access to someor all of the social graph information. In some embodiments, thecommerce entity may have direct access to the messaging service 140using their commerce account, with the business portal 160 limited tobusiness functions of the consumer-to-business service 110 with generalmessaging functionality (e.g., messaging with customers) providedthrough direct network communication between the commerce front-endservice 190 and the messaging service 140 without the mediation of thebusiness portal 160.

A user may participate in the consumer-to-business messaging system 100and interact with the consumer-to-business service 110 using a messagingendpoint 125 software application executing on a client device 120. Theclient device 120 may typically be a smartphone—a mobile phone capableof executing software applications that provide functionality beyondthat of a conventional telephone—such as an iPhone®, Android® phone, orother smartphone. The messaging endpoint 125 may be specificallyassociated with a particular messaging service 140 that forms part ofthe consumer-to-business service 110 or may be a general-purposemessaging client operative to interact with a plurality of messagingservices. The messaging endpoint 125 may interact with one or both ofthe consumer portal 150 and the messaging service 140 for theperformance of messaging tasks and commerce tasks.

A commerce entity, such as through the actions of representatives,employees, and/or agents of the commerce entity, may participate in theconsumer-to-business messaging system 100 and interact with theconsumer-to-business service 110 using a commerce front-end server 190.The commerce front-end server 190 may comprise any software and/orcomputer hardware used by a commerce entity for participating in theconsumer-to-business messaging system 100. The commerce front-end server190 may interact with one or both of the business portal 160 and themessaging service 140 for the performance of messaging tasks andcommerce tasks. The commerce front-end server 190 may serve as or act asan intermediary within a commerce entity for computing devices used byadministrators of a business's presence within the consumer-to-businessmessaging system 100, for computing devices used by employees carryingout purchased services or providing purchased products, or for computingdevices used by any other member of a commerce entity carrying out tasksrelated to the consumer-to-business messaging system 100.

The network 180 may comprise any form of computer network operative tocarry computer transmissions between computer devices. The network 180may include one or both of intranets and the Internet. The network 180may include cellular data and/or Wi-Fi data networks, such as may beused to provide connectivity to a mobile client device 120.

The consumer-to-business messaging system 100 may use knowledgegenerated from interactions between users. The consumer-to-businessmessaging system 100 may comprise a component of a social-networkingservice and may use knowledge generated from the broader interactions ofthe social-networking service. As such, to protect the privacy of theusers of the consumer-to-business messaging system 100 and the largersocial-networking service, consumer-to-business messaging system 100 mayinclude an authorization server (or other suitable component(s)) thatallows users to opt in to or opt out of having their actions logged bythe consumer-to-business messaging system 100 or shared with othersystems (e.g., third-party systems), for example, by setting appropriateprivacy settings. A privacy setting of a user may determine whatinformation associated with the user may be logged, how informationassociated with the user may be logged, when information associated withthe user may be logged, who may log information associated with theuser, whom information associated with the user may be shared with, andfor what purposes information associated with the user may be logged orshared. Authorization servers or other authorization components may beused to enforce one or more privacy settings of the users of theconsumer-to-business messaging system 100 and other elements of asocial-networking service through blocking, data hashing, anonymization,or other suitable techniques as appropriate. For example, whileinteractions between users of a social-networking service and thesocial-networking service may be used to learn media content preferencesand the relationship between preferences for different pieces of mediacontent, these interactions may be anonymized prior to or as part of thelearning process.

FIG. 2 illustrates an example of a social graph 200. In particularembodiments, a social-networking service may store one or more socialgraphs 200 in one or more data stores as a social graph data structurevia the social networking service 170.

In particular embodiments, social graph 200 may include multiple nodes,which may include multiple user nodes 202 and multiple concept nodes204. Social graph 200 may include multiple edges 206 connecting thenodes. In particular embodiments, a social-networking service, clientsystem, third-party system, or any other system or device may accesssocial graph 200 and related social-graph information for suitableapplications. The nodes and edges of social graph 200 may be stored asdata objects, for example, in a data store (such as a social-graphdatabase). Such a data store may include one or more searchable orqueryable indexes of nodes or edges of social graph 200.

In particular embodiments, a user node 202 may correspond to a user ofthe social-networking service. As an example and not by way oflimitation, a user may be an individual (human user), an entity (e.g.,an enterprise, business, or third-party application), or a group (e.g.,of individuals or entities) that interacts or communicates with or overthe social-networking service. In particular embodiments, when a userregisters for an account with the social-networking service, thesocial-networking service may create a user node 202 corresponding tothe user, and store the user node 202 in one or more data stores. Usersand user nodes 202 described herein may, where appropriate, refer toregistered users and user nodes 202 associated with registered users. Inaddition or as an alternative, users and user nodes 202 described hereinmay, where appropriate, refer to users that have not registered with thesocial-networking service. In particular embodiments, a user node 202may be associated with information provided by a user or informationgathered by various systems, including the social-networking service. Asan example and not by way of limitation, a user may provide their name,profile picture, contact information, birth date, sex, marital status,family status, employment, education background, preferences, interests,or other demographic information. In particular embodiments, a user node202 may be associated with one or more data objects corresponding toinformation associated with a user. In particular embodiments, a usernode 202 may correspond to one or more webpages. A user node 202 may beassociated with a unique user identifier for the user in thesocial-networking service.

In particular embodiments, a concept node 204 may correspond to aconcept. As an example and not by way of limitation, a concept maycorrespond to a place (such as, for example, a movie theater,restaurant, landmark, or city); a website (such as, for example, awebsite associated with the social-network service or a third-partywebsite associated with a web-application server); an entity (such as,for example, a person, business, group, sports team, or celebrity); aresource (such as, for example, an audio file, video file, digitalphoto, text file, structured document, or application) which may belocated within the social-networking service or on an external server,such as a web-application server; real or intellectual property (suchas, for example, a sculpture, painting, movie, game, song, idea,photograph, or written work); a game; an activity; an idea or theory;another suitable concept; or two or more such concepts. A concept node204 may be associated with information of a concept provided by a useror information gathered by various systems, including thesocial-networking service. As an example and not by way of limitation,information of a concept may include a name or a title; one or moreimages (e.g., an image of the cover page of a book); a location (e.g.,an address or a geographical location); a website (which may beassociated with a URL); contact information (e.g., a phone number or anemail address); other suitable concept information; or any suitablecombination of such information. In particular embodiments, a conceptnode 204 may be associated with one or more data objects correspondingto information associated with concept node 204. In particularembodiments, a concept node 204 may correspond to one or more webpages.

In particular embodiments, a node in social graph 200 may represent orbe represented by a webpage (which may be referred to as a “profilepage”). Profile pages may be hosted by or accessible to thesocial-networking service. Profile pages may also be hosted onthird-party websites associated with a third-party server. As an exampleand not by way of limitation, a profile page corresponding to aparticular external webpage may be the particular external webpage andthe profile page may correspond to a particular concept node 204.Profile pages may be viewable by all or a selected subset of otherusers. As an example and not by way of limitation, a user node 202 mayhave a corresponding user-profile page in which the corresponding usermay add content, make declarations, or otherwise express himself orherself. A business page such as business page 205 may comprise auser-profile page for a commerce entity. As another example and not byway of limitation, a concept node 204 may have a correspondingconcept-profile page in which one or more users may add content, makedeclarations, or express themselves, particularly in relation to theconcept corresponding to concept node 204.

In particular embodiments, a concept node 204 may represent athird-party webpage or resource hosted by a third-party system. Thethird-party webpage or resource may include, among other elements,content, a selectable or other icon, or other inter-actable object(which may be implemented, for example, in JavaScript, AJAX, or PHPcodes) representing an action or activity. As an example and not by wayof limitation, a third-party webpage may include a selectable icon suchas “like,” “check in,” “eat,” “recommend,” or another suitable action oractivity. A user viewing the third-party webpage may perform an actionby selecting one of the icons (e.g., “eat”), causing a client system tosend to the social-networking service a message indicating the user'saction. In response to the message, the social-networking service maycreate an edge (e.g., an “eat” edge) between a user node 202corresponding to the user and a concept node 204 corresponding to thethird-party webpage or resource and store edge 206 in one or more datastores.

In particular embodiments, a pair of nodes in social graph 200 may beconnected to each other by one or more edges 206. An edge 206 connectinga pair of nodes may represent a relationship between the pair of nodes.In particular embodiments, an edge 206 may include or represent one ormore data objects or attributes corresponding to the relationshipbetween a pair of nodes. As an example and not by way of limitation, afirst user may indicate that a second user is a “friend” of the firstuser. In response to this indication, the social-networking service maysend a “friend request” to the second user. If the second user confirmsthe “friend request,” the social-networking service may create an edge206 connecting the first user's user node 202 to the second user's usernode 202 in social graph 200 and store edge 206 as social-graphinformation in one or more data stores. In the example of FIG. 2, socialgraph 200 includes an edge 206 indicating a friend relation between usernodes 202 of user “Amanda” and user “Dorothy.” Although this disclosuredescribes or illustrates particular edges 206 with particular attributesconnecting particular user nodes 202, this disclosure contemplates anysuitable edges 206 with any suitable attributes connecting user nodes202. As an example and not by way of limitation, an edge 206 mayrepresent a friendship, family relationship, business or employmentrelationship, fan relationship, follower relationship, visitorrelationship, subscriber relationship, superior/subordinaterelationship, reciprocal relationship, non-reciprocal relationship,another suitable type of relationship, or two or more suchrelationships. Moreover, although this disclosure generally describesnodes as being connected, this disclosure also describes users orconcepts as being connected. Herein, references to users or conceptsbeing connected may, where appropriate, refer to the nodes correspondingto those users or concepts being connected in social graph 200 by one ormore edges 206.

In particular embodiments, an edge 206 between a user node 202 and aconcept node 204 may represent a particular action or activity performedby a user associated with user node 202 toward a concept associated witha concept node 204. As an example and not by way of limitation, asillustrated in FIG. 2, a user may “like,” “attended,” “played,”“listened,” “cooked,” “worked at,” or “watched” a concept, each of whichmay correspond to a edge type or subtype. A concept-profile pagecorresponding to a concept node 204 may include, for example, aselectable “check in” icon (such as, for example, a clickable “check in”icon) or a selectable “add to favorites” icon. Similarly, after a userclicks these icons, the social-networking service may create a“favorite” edge or a “check in” edge in response to a user's actioncorresponding to a respective action. As another example and not by wayof limitation, a user (user “Carla”) may listen to a particular song(“Across the Sea”) using a particular application (SPOTIFY, which is anonline music application). In this case, the social-networking servicemay create a “listened” edge 206 and a “used” edge (as illustrated inFIG. 2) between user nodes 202 corresponding to the user and conceptnodes 204 corresponding to the song and application to indicate that theuser listened to the song and used the application. Moreover, thesocial-networking service may create a “played” edge 206 (as illustratedin FIG. 2) between concept nodes 204 corresponding to the song and theapplication to indicate that the particular song was played by theparticular application. In this case, “played” edge 206 corresponds toan action performed by an external application (SPOTIFY) on an externalaudio file (the song “Across the Sea”). Although this disclosuredescribes particular edges 206 with particular attributes connectinguser nodes 202 and concept nodes 204, this disclosure contemplates anysuitable edges 206 with any suitable attributes connecting user nodes202 and concept nodes 204. Moreover, although this disclosure describesedges between a user node 202 and a concept node 204 representing asingle relationship, this disclosure contemplates edges between a usernode 202 and a concept node 204 representing one or more relationships.As an example and not by way of limitation, an edge 206 may representboth that a user likes and has used at a particular concept.Alternatively, another edge 206 may represent each type of relationship(or multiples of a single relationship) between a user node 202 and aconcept node 204 (as illustrated in FIG. 2 between user node 202 foruser “Edwin” and concept node 204 for “SPOTIFY”).

In particular embodiments, the social-networking service may create anedge 206 between a user node 202 and a concept node 204 in social graph200. As an example and not by way of limitation, a user viewing aconcept-profile page (such as, for example, by using a web browser or aspecial-purpose application hosted by the user's client system) mayindicate that he or she likes the concept represented by the conceptnode 204 by clicking or selecting a “Like” icon, which may cause theuser's client system to send to the social-networking service a messageindicating the user's liking of the concept associated with theconcept-profile page. In response to the message, the social-networkingservice may create an edge 206 between user node 202 associated with theuser and concept node 204, as illustrated by “like” edge 206 between theuser and concept node 204. In particular embodiments, thesocial-networking service may store an edge 206 in one or more datastores. In particular embodiments, an edge 206 may be automaticallyformed by the social-networking service in response to a particular useraction. As an example and not by way of limitation, if a first useruploads a picture, watches a movie, or listens to a song, an edge 206may be formed between user node 202 corresponding to the first user andconcept nodes 204 corresponding to those concepts. Although thisdisclosure describes forming particular edges 206 in particular manners,this disclosure contemplates forming any suitable edges 206 in anysuitable manner.

As shown in FIG. 2, a user “David” has a “purchased” edge between theiruser node and the user node for the “Burnt Brews” business. This edgemay have been created in response to the purchase made as a result ofthe actions described in relation to FIG. 2B. The existence of this edgemay indicate to the consumer-to-business messaging system 100 that theuser “David” has voluntarily engaged in a business relationship with thebusiness “Burnt Brews.” The existence of this commerce edge mayauthorize the commerce entity “Burnt Brews” to message the user “David.”

The social graph 200 may further comprise a plurality of product nodes.Product nodes may represent particular products that may be associatedwith a particular business. A business may provide a product catalog tothe consumer-to-business service 110 and the consumer-to-businessservice 110 may therefore represent each of the products within theproduct in the social graph 200 with each product being in a distinctproduct node. A product node may comprise information relating to theproduct, such as pricing information, descriptive information,manufacturer information, availability information, and other relevantinformation. For example, each of the items on a menu for a restaurantmay be represented within the social graph 200 with a product nodedescribing each of the items. A product node may be linked by an edge tothe business providing the product. Where multiple businesses provide aproduct, each business may have a distinct product node associated withits providing of the product or may each link to the same product node.A product node may be linked by an edge to each user that has purchased,rated, owns, recommended, or viewed the product, with the edgedescribing the nature of the relationship (e.g., purchased, rated, owns,recommended, viewed, or other relationship). Each of the product nodesmay be associated with a graph id and an associated merchant id byvirtue of the linked merchant business. Products available from abusiness may therefore be communicated to a user by retrieving theavailable product nodes linked to the user node for the business withinthe social graph 200. The information for a product node may bemanipulated by the messaging service 140 as a product object thatencapsulates information regarding the referenced product.

Business Messaging

People enjoy the convenience and flexibility ofonline—Internet-based—transactions and interactions, including onlinecommerce. A user may engage in an interaction with an online entity—forexample, the purchase of a product or service from a commerce entity—andone or both of the parties may desire to follow up on the interaction,such as to clarify the performance of a purchased service or to suggestthe purchase of related products. However, the user may wish to avoidbeing pestered by online entities with which it doesn't have anestablished relationship, such as may attempt to send unwantedpromotions (i.e., “spam”).

As such, a user may benefit from being tracked by a social graph datastructure that represents relationships between different entities. Abusiness portal for a messaging system to which the user subscribes mayreference the social graph data structure to determine whether an onlineentity is allowed to contact the user through the messaging system. Thebusiness portal may safeguard the privacy of the user by limitingmessaging access to the user to only those online entities with whichthe user has a sufficient preexisting relationship. A sufficientpreexisting relationship may correspond to any relationship establishedprior to the receipt of a requested communication that indicates that auser is interested in engaging with the business. Examples of sufficientrelationships may include having engaged in prior commerce with theentity, having recently engaged in commerce with the entity, havingliked or followed the entity in a social networking service, or otherforms of explicit behavior by the user in regards to the entity. In somecases, implicit connections—for example, discussing a business in amessaging conversation—may contribute to the evaluation of whether asufficient relationship exists.

Businesses may therefore be able to communicate with and service theircustomers in a personal way. The may create personal conversations withcustomers: businesses can personally communicate with their customers ona growing platform. They may use rich, beautiful messages that combinethe rich presentation of email with high-signal pushability. They may beserviced by a pushable, real-time channel empowering them to send timelymessages directly to customers' phones, where they can read and takebasic actions while on the go. The may send actionable messages thatimprove conversion with messages that people can tap and take action onwithout logging into another site or installing another app. The mayimplement a personal touch across platforms that allow them to buildtrust with your customers in a single conversation that's unified andpersonalized across web and mobile.

People may therefore be able to communicate with business like they'retalking with a friend. These conversations may take place in onelocation, people communicating with a business in a single conversationin a messaging endpoint. People may save time by receiving importantmessages from businesses, including order confirmation and shippingstatus, without digging through their email or getting on the phone.People may take action by taking basic actions, like modifying,tracking, or returning their order, in the same conversation withoutnavigating web links, installing more apps, or remembering passwords.People may ask questions by messaging a business with theirquestions—from customer support to product availability—and get quickresponses like their talking with a friend.

This may provide several advantages to both customers and businesses. Aperson will be able to start a conversation with a business in amessaging endpoint when they complete the checkout flow on the business'site. Once the person agrees, the business can send the person orderupdates in the messaging endpoint, including order confirmation andshipping status. The person can also take basic actions (e.g., modify,track, or return the order) directly within the conversation. Inaddition, a person can ask the business free-form questions about theorder or other questions (e.g., “Do you have The Cotton V in size S?”)and receive quick responses from the business, again directly within theconversation. People will also be able to initiate a conversationthrough a customer service live chat. People can also start a threadwith a business from a search field in response to a current or previoussearch query (e.g., from an area designated with recent search results,previously viewed pages, etc.) and/or messaging a business from a socialmedia site. It may be appreciated that these are merely a few examplesof how a person may start a conversation with a business in a messagingendpoint, and others exist as well. Embodiments are not limited in thiscontext.

Embodiments enhance communications between people and businesses. Pagesfor a business are integrated in the messaging application so that allcommunications with a business are unified into a single conversation inMessenger, regardless of the entry point. A page may represent anidentity for a business on social media and may be seamlessly integratedwith a variety of social and non-social media applications and services.The messaging application provides communication tools that serve abroad range of businesses. A business is able to send rich, actionablemessages to a person in real-time through a set of APIs. As a result,the embodiments herein can improve the privacy of a user while extendingthe utility of a messaging service for the user and for online entitiessuch as businesses.

FIG. 3A illustrates an embodiment of a user interface 300 for amessaging endpoint 125 displaying a business page 305.

The business page 305 may display information regarding a commerceentity “Burnt Brews,” an example coffee shop. The business page 305 mayinclude information for the commerce entity, such as one or more of aphysical location for the commerce entity, the operating hours of thephysical location, the hours in which the commerce entity (e.g., arepresentative of the commerce entity) is available for messagingthrough the consumer-to-business messaging system 100. The business page305 may include social-networking information for the commerce entity,such as a list of friends of a viewing user that have “liked” or“followed” the commerce entity within a social network as may berepresented in a social graph.

The business page 305 may include an order control 310, the ordercontrol 310 operative to instantiate an ordering interface for orderingfrom the commerce entity on the client device 120.

The business page 305 may include a messaging control 315, the messagingcontrol 315 operative to instantiate a messaging interface for messagingwith the commerce entity on the client device 120.

FIG. 3B illustrates an embodiment of a user interface 325 for amessaging endpoint 125 displaying an ordering page 330.

The ordering page 330 may display information and controls forconfiguring and submitting an order to the commerce entity. Orderselection controls 335 may empower a user to select one or more productsand/or service and/or options configuring a product or service. Theordering page 330 may comprise an order placement control 340 empoweringthe user to submit an order comprising one or more selected products,service, and/or options for the selected products and/or services.

FIG. 3C illustrates an embodiment of a user interface 350 for amessaging endpoint 125 displaying a consumer-to-business messaginginteraction.

The consumer-to-business messaging interaction may include an orderplacement message 360, the order placement message 360 summarizing anorder configured and submitted using the ordering page 330. The orderplacement message 360 may be an automated message generated by theconsumer-to-business service 110 that summarizes the interaction fromthe perspective of this intermediary service. The order placementmessage 360 may include information provided by the consumer-to-businessservice 110 such as the name of the ordering user, a preferred form ofaddress of the ordering user, and other personal details of the orderinguser.

The consumer-to-business messaging interaction may include a businessorder confirmation message 362. The business order confirmation message362 may be received by the consumer-to-business service 110 from thecommerce front-end server 190 and have been generated by the commerceentity. The business order confirmation message 362 may correspond to anautomatically-generated message generated automatically by a computingdevice of the commerce entity in response to the received order.

The consumer-to-business messaging interaction may include a businessquery message 364. The business query message 364 may comprise a queryto the ordering user regarding the customization or some other queryfrom the commerce entity for use in the delivery of the ordered productor service. The business query message 364 may comprise amanually-entered message entered by a member of the commerce entityinvolved in the performance of a requested order. The ability of thecommerce entity to message the user once an order has been received mayrepresent a key advantage of the consumer-to-business messaging system100 by enabling natural, conversational dialog between the user and thecommerce entity to aid in the performance of a requested order.

The consumer-to-business messaging interaction may include a userresponse message 366. The user response message 366 may comprise aresponse to the business query message 364 answering the query.

The consumer-to-business messaging interaction may include a businessresponse message 368. The business response message 368 may comprise ahuman acknowledgement that the user's response has been received andwill be acted on.

The consumer-to-business messaging interaction may include a businessorder fulfillment message 370. The business order fulfillment message370 may comprise a notification to the user that their order has beenfulfilled. Where a physical interaction (e.g., the reception of anin-person service, the reception of a physical product) has beenrequested the business order fulfillment message 370 may include areminder of the physical location at which the product or service may bereceived. The business order fulfillment message 370 may beautomatically generated in response to an indication from a member ofthe commerce entity that the fulfillment is ready or has been performed.This automatic generation may automatically include details such as thephysical location for the reception of the product or service and areminder of the ordered product or service.

FIG. 4 illustrates an embodiment of a consumer-to-business service 110processing an order request.

The consumer portal 150 for the consumer-to-business service 110 mayreceive, at a network interface on a commerce intermediary server, anorder request package 420 from a client device 120, the order requestpackage 420 specifying a user account and a commerce account, the useraccount associated with a user entity in a social graph data structure,the commerce account associated with a commerce entity in the socialgraph data structure. The commerce intermediary server may transmit theorder request package 420 to the commerce front-end server 190 for thecommerce entity via a business portal. In some cases, the order requestpackage 420 may be supplemented with information added by theconsumer-to-business service 110 to further the fulfillment of the orderrequest represented by the order request package 420.

The consumer-to-business service 110 may perform a financial transactionwith a financial transaction server based on the order request package420. A financial transaction may comprise one or more of charging acredit card associated with the user account, charging a debit cardassociated with the user account, debiting a credit account associatedwith the user account, or any other technique for performing a financialtransaction. The consumer-to-business service 110 may insert a financialtransaction record for the financial transaction into the order requestpackage 420 prior to transmitting the order request package 420 to thecommerce front-end server 190. In some embodiments, a default paymentconfiguration may be used. The consumer-to-business service 110 mayretrieve a default payment configuration record for the user account andperform the financial transaction using the default paymentconfiguration record. Alternatively, the order request package 420 maycomprise a payment configuration record indicating what form offinancial transaction should be performed, and may also includefinancial transaction information (e.g., a credit card number) for usein performing the financial transaction.

An integrated messaging and payment system can provide convenience inthe processing of payment transactions for the purchase of a product orservice. Specifically, the integrated messaging and payment system canallow a user to perform a payment transaction with a merchant topurchase a product or service within a messaging endpoint 125. Forexample, the consumer-to-business messaging system 100 can allow theuser to initiate a payment transaction with a merchant whilecommunicating with the merchant via the messaging endpoint 125. Thus,the consumer-to-business messaging system 100 can enable a user toeasily interact with a merchant to inquire about and/or purchase aproduct from the user's client device 120 (e.g., a mobile device such asa smartphone).

Additionally, an embodiment of the consumer-to-business messaging system100 can simplify a method for processing refunds to users. For example,the consumer-to-business messaging system 100 can provide a way formerchants to issue refunds to the user via the messaging endpoint 125.Specifically, the consumer-to-business messaging system 100 can allow auser to request a refund from a merchant from within the messagingendpoint 125 by associating a messaging thread between the user and themerchant with a transaction identifier tied to a payment transactionbetween the user and the merchant. Thus, the merchant can issue a refundto a user without requiring the user to give the merchant sensitiveinformation (e.g., a card number) in a phone call or in person.

According to one or more embodiments, the consumer-to-business messagingsystem 100 can also allow users to pay merchants via a variety ofpayment methods. In particular, the consumer-to-business messagingsystem 100 can allow users to register a plurality of paymentcredentials with the system for use in payment transactions withmerchants. For example, the consumer-to-business messaging system 100can allow a user to select one or more of a plurality of registeredpayment credentials to pay for a product from a merchant using themessaging endpoint 125. Additionally, the consumer-to-business messagingsystem 100 also may allow merchants to provide a plurality of differentpayment options to the user based on the preferences or requirements ofthe merchants. Thus, the consumer-to-business messaging system 100 canprovide versatility of payment methods in electronic paymenttransactions between users and merchants.

Furthermore, the system can allow a consumer to make a pay a merchantfor a product or service without having to provide sensitive financialinformation (e.g., credit card number, checking account number) to themerchant. Thus, the consumer-to-business messaging system 100 canprovide increased security for the user. In particular, the user canavoid any fears of fraud when visiting a new merchant.

The consumer-to-business messaging system 100 can also increase securityfor the merchant. In particular, the consumer-to-business messagingsystem 100 can perform risk checks based on information maintained aboutthe consumer by a social networking system. The consumer-to-businessmessaging system 100 can deny a payment if the consumer is a knownfraudster or if the payment appears fraudulent based on informationabout the consumer or the merchant maintained by the system.

In addition allowing the users to exchange electronic communications,the consumer-to-business messaging system 100 can allow the users tosend and receive monetary payments to and from one another. In one ormore embodiments, the consumer-to-business messaging system 100 allowsusers to define and send a payment message to a merchant user. Forinstance, the consumer-to-business messaging system 100 can allow theuser to send a payment to a business via the messaging service 140.Likewise, the business can receive notice of the payment, and accept ordecline the payment. The business can communicate with theconsumer-to-business messaging system 100 to coordinate a transactionthat facilitates the payment between the users (i.e., their accounts).

In one or more embodiments, for example, the consumer-to-businessmessaging system 100 can communicate with a payment network to authorizeand process a transaction. For example, the consumer-to-businessmessaging system 100 can send a transaction to a payment gateway system.Once the payment gateway system receives the transaction, the paymentgateway system can send the transaction to the processor (e.g., apayment processing system) used by a payment merchant user's acquiringbank. Based on the method of the payment (e.g., consumer user'saccount), the payment processing system can transmit the transaction toan appropriate card network system. In many instances, the card networksystem then sends the transaction to an issuing bank system.

The issuing bank system either approves or declines the transaction, andsends the decision back to a card network system. The card network thensends the decision to the payment processing system. The paymentprocessing system can then forward the decision to the payment gatewaysystem, and in one or more embodiments, the payment gateway system canmaintain the details related to the transaction and the decision. Thepayment processing system also sends the decision to theconsumer-to-business messaging system 100.

In addition to authorizing a transaction, the payment network can alsoperform settlement tasks. For example, the consumer-to-businessmessaging system 100 can coordinate with the payment gateway system tosubmit a daily settlement batch including one or more capturedtransactions to an acquiring bank via the acquiring bank's preferredpayment processing system. The payment processing system then sends thesettlement batch to a server of the acquiring bank, which records adeposit in the amount of each transaction within the settlement batch toan account associated with the merchant.

The acquiring bank can then send a funding request in satisfaction ofthe deposit amount to the payment processing system, which passes thefunding request to the appropriate card network system. The card networksystem then sends the funding request to the issuing bank system. Theissuing bank system can post the transaction to the consumer user'saccount and pass a release of the funds to the card network system,which are then passed to the payment processing system, and then theacquiring bank.

A social graph data structure component on the commerce intermediaryserver may be generally arranged to create a commerce edge in the socialgraph data structure between the user entity and the commerce entity inresponse to the commerce intermediary server receiving the order requestpackage 420 from the client device 120, the commerce edge associatedwith the order request package 420.

A messaging server operating as part of the messaging service 140 mayreceive, such as via the business portal 160, a message packagecomprising an order response message 430, the message package addressedto the user account, the message package received from the commercefront-end server 190. The messaging server may determine that thecommerce front-end server 190 is authorized to message the user accountbased on the commerce edge in the social graph data structure betweenthe user entity and the commerce entity.

The messaging server may transmit the message package to the clientdevice 120 based on the determination that the commerce front-end server190 is authorized to message the user account based on the commerce edgein the social graph data structure between the user entity and thecommerce entity. In some embodiments, the message package may bereceived at the messaging server from the commerce front-end server 190via the commerce intermediary server as the commerce front-end server190 may be required to use the business portal 160 to access themessaging system so that the business portal 160 can perform accesscontrol based on social graph information 460 indicating whether asufficient relationship exists between the user account and the commerceentity to authorize the commerce entity to message the user.

In some cases, the message package may comprise an order fulfillmentpackage in response to the order request package 420. An orderfulfillment package may comprise an online fulfillment notificationindicating that an online service contracted by the order requestpackage 420 has been fulfilled. An order fulfillment package maycomprise an in-person fulfillment notification indicating that at leastone of an in-person service or an in-person product contracted by theorder request package 420 is ready for receipt at a particular location.An order fulfillment package may comprise a machine-readable opticallabel, the machine readable optical label encoding an order identifierassigned to the order request represented by the order request package420. The machine readable optical label may be displayed by the user ontheir client device 120 at the physical location at which a product orservice will be fulfilled in order to identify themselves as the properrecipient of the product or service.

In some cases, a particular location of a commerce entity from aplurality of locations (e.g., franchise locations) may be selected basedon the location of the client device 120. In some cases, an orderrequest may be customized based on a location of the client device 120.The consumer-to-business service 110 may receiving a geographic locationof the client device 120 and select automatically at least one of theone or more product options based on the received geographic location. Adevice location 450 may be transmitted via a location-based servicesserver 440.

A commerce edge existing between the user entity and the commerce entityin the social graph data structure may be used to authorize the commerceentity in transmitting promotions (e.g., notices of sales) to the user.The consumer-to-business service 110 may receive a promotion packagefrom the commerce intermediary server 190, the promotion packagedefining one or more user selection attributes. The consumer-to-businessservice 110 may select the user account based on the user selectionattributes. The consumer-to-business service 110 may authorize thetransmission of the promotion package to the user account based oncommerce edge in the social graph data structure between the user entityand the commerce entity. The consumer-to-business service 110 maymessage the user account with the promotion package based on theauthorizing of the transmission of the promotion package.

An order response message 430 may include actionable elements. Anactionable element may include one or more controls providing access toone or more of modifying an order, tracking an order, and returning anorder. Some of these actionable elements may be automatically performed,such as providing controls that initiate automated actions. For example,a tracking control may prompt the automatic return of trackinginformation. Tracking information may be returned within the flow of amessaging conversation and displayed as simply another entry in theback-and-forth flow of the messaging conversation.

It will be appreciated that, in some cases, the user may initiatemessaging with the business. For example, they may select a messagecontrol on a business page or social-networking page for the commerceentity. The user may initiate messaging in order to, for example, askquestions regarding products or services prior to initiating an order.

FIG. 5 illustrates an embodiment of a consumer-to-business service 110processing a follow request 520.

In some cases a user may find a commerce entity in social networkingservice 170, such as through searching a social-networking service. Theuser may find the commerce entity by searching local businesses,searching recommended businesses, searching for the business usingkeywords or the name of the business, or according to any othertechnique for business discovery. The user may elect to “follow” thecommerce entity in the social networking service 170.

Displaying the business page 305 and/or the ordering page 330 mayinvolve accessing data from a business application package 530, thebusiness application package 530 defining one or more of contactinformation for the business, product information for the business(e.g., a product listing, product options), service information for thebusiness (e.g., a service listing, service options), and otherinformation related to the business and interaction with the business.The business application package may define an order request format andorder request options for a order request package 420. Productinformation for the business may include prices for the products.Service information for the business may include prices for theservices.

The business application package 530 may comprise one or more of addressinformation associated with the commerce entity, contact informationassociated with the commerce entity, and a product manifest associatedwith the commerce entity. The business application package 530 maycomprise a product manifest associated with the commerce entity, theproduct manifest comprising a plurality of products, wherein each of theproducts is associated with a price, wherein one or more of theplurality of products is associated with one or more product options.

The consumer-to-business service 110 may transmit a business applicationpackage 530 to the client device 120. The business application package530 may be transmitted to the client device 120 in response to a followrequest 520 received from the client device 120. Theconsumer-to-business service 110 may receive a page follow request 520for the user account, create a following edge in the social graph datastructure between the user entity and the commerce entity in the socialgraph data structure in response to the received page follow request520, and transmit the business application package 530 to the clientdevice 120 based on the page follow request 520.

In some cases, a business may be promoted to a user based on thephysical proximity of the business. For example, a user searching for acoffee shop may be suggested a nearby coffee shop. Theconsumer-to-business service 110 may receive a geographic location forthe client device 120 from the client device 120 at a location-basedservices server 440 and transmit the business application package 530 tothe client device 120 based on the geographic location corresponding tothe commerce entity.

In some cases, a commerce entity may be promoted to a user based onpredicted interest by the user in the commerce entity, as may bedetermined based on pattern matching to other users who have engaged inbusiness with the commerce entity. The consumer-to-business service 110may perform a commerce affinity analysis for the commerce entity basedon the social graph data structure and transmit the business applicationpackage 530 to the client device 120 based on the commerce affinityanalysis predicting a commerce affinity between the user entity and thecommerce entity. The commerce affinity analysis may comprise one or moreexplicit affinity symbols in the social graph data structure and one ormore implicit affinity symbols in the social graph data structure.

Included herein is a set of flow charts representative of exemplarymethodologies for performing novel aspects of the disclosedarchitecture. While, for purposes of simplicity of explanation, the oneor more methodologies shown herein, for example, in the form of a flowchart or flow diagram, are shown and described as a series of acts, itis to be understood and appreciated that the methodologies are notlimited by the order of acts, as some acts may, in accordance therewith,occur in a different order and/or concurrently with other acts from thatshown and described herein. For example, those skilled in the art willunderstand and appreciate that a methodology could alternatively berepresented as a series of interrelated states or events, such as in astate diagram. Moreover, not all acts illustrated in a methodology maybe required for a novel implementation.

FIG. 6 illustrates one embodiment of a first logic flow 600. The logicflow 600 may be representative of some or all of the operations executedby one or more embodiments described herein.

In the illustrated embodiment shown in FIG. 6, the logic flow 600 mayreceive, at a network interface on a commerce intermediary server, anorder request package from a client device, the order request specifyinga user account and a commerce account, the user account associated witha user entity in a social graph data structure, the commerce accountassociated with a commerce entity in the social graph data structure atblock 602.

The logic flow 600 may transmit the order request package to a commercefront-end server associated with the commerce entity at block 604.

The logic flow 600 may create a commerce edge in the social graph datastructure between the user entity and the commerce entity in response toreceiving the order request package from the client device, the commerceedge associated with the order request package at block 606.

The embodiments are not limited to this example.

Automatically-Determined Form Responses

Administrators of a page for a business may receive and be responsiblefor responding to similar messages repeatedly. For example, queries asto the hours of a business, return policy, business location, or othercommon topics may be received many times from potential and existingcustomers. Administrators may therefore benefit from recording theirresponses and/or generating form responses and using these responses torespond to repeated similar questions. This may save the administratorstime and, by allowing administrators to spend more of their time onnovel or unusual queries or comments, improve the overall quality ofresponses sent out by a business.

In some cases, administrators may benefit simply from having a catalogof pre-prepared responses available to choose from when crafting areply. However, even more beneficial may be having a messaging servicepropose one or more of the pre-prepared responses that it has determinedmay be appropriate for replying to a particular user message. A naturallanguage processor may analyze the pre-prepared responses and determinean intent associated with each of them, this intent reflecting what thenatural language processor has determined as the goal of communicatingeach of the pre-prepared responses. When a user submits a message to abusiness, the message may be provided to the natural language processorand an intent of the message may be identified, this intent reflectingwhat the natural language processor has determined as the goal ofmessaging the business with that message. The inferred intent of themessage may be matched against the inferred intents of the pre-preparedresponses to determine whether one of the pre-prepared responses matchesthe intent of the message. The messaging service may then present anymatching responses—or the response which best matches—to theadministrator and offer them the opportunity to use the pre-preparedresponse to reply to the user's message. As a result, the embodimentsdisclosed herein may increase the utility of generating pre-preparedresponses, reduce the time involved in using one, and thereby increasethe response speed, response quality, and overall efficiency of abusiness using the messaging service.

FIG. 7 illustrates an embodiment of a user interface 700 for anadministrator messaging endpoint 125 displaying a series of receivedmessages. The user interface 700 may comprise an administrator view ofthe messages that have been assigned to them for replying to.

An administrator message listing 710 may include a plurality of messagesreceived by the page for a business. The use of a natural languageprocessor may identify a predefined response message for some of theplurality of messages. The user messages for which a predefined responsemessages is determined may be displayed in association with aadministrator control empowering the administrator to view thepredefined response message. An administrator viewing a predefinedresponse message may be empowered to customize the response message,send the response message, or instead decline to send the predefinedresponse message. In some embodiments, whether the administrator uses asuggested predefined response message may be used to refine thesuggestion of response messages, indicating to the natural languageprocessor that its criteria for analyzing messages is accurate when thepredefined response message is used and indicating to the naturallanguage processor that is criteria for analyzing messages are notentirely accurate when the predefined response message is not used.

The user messages for which there is no matching predefined responsemessage may be displayed in association with a notification to theadministrator that no predefined response message is available.Alternatively, in some embodiments the user messages for which there isno matching predefined response message may simply be displayed withoutthe administrator control empowering the administrator to view thepredefined response message, thereby implicitly communicating that nopredefined response message is available. Where no predefined responsemessage is available, or where a predefined response message is rejectedby the administrator, the administrator's actual response message mayoptionally be added to the list of predefined response messages, such asby querying the administrator as to whether their response should beadded or by allowing the administrator to check a box or other controlwhen composing or sending a response that marks the response forinclusion in the set of predefined response messages.

FIG. 8 illustrates an embodiment of a consumer-to-business service 110generating an automated response.

The consumer portal 150 may receive, using a network interface for acommerce intermediary server, a messaging package 820 from a messagingendpoint 125 at a messaging service 140. The messaging package 820 maycomprise a user message 830 from the user of the client device 120directed to a business entity as identified by a business page for thebusiness entity with the social networking service 170. The message mayform a query, request, or directive to the business, such as regardingthe products and services of the business.

The consumer portal 150 may perform a natural language processing of themessaging package 820 using a natural language processor 840. Thenatural language processor 840 may operate according to any of the knowntechniques for natural language processing. The consumer portal 150 maydetermine a response message predicted to correspond to the messagingpackage 820 by submitting a user message 830 extracted from themessaging package 820 to the natural language processor 840 andreceiving natural language recognition information from the naturallanguage processor 840 that the consumer-to-business service 110 may useto identify an appropriate response message.

Performing the natural language processing may comprise submitting atleast a portion of the messaging package 820 to a natural languageprocessor 840. The natural language processor 820 may be trained basedon a messaging interaction history for the messaging service 140. Thismessaging interaction history may comprise a history of messaginginteractions—user messages and responses from administrators—thatprovide examples of appropriate responses to empower the naturallanguage processor 840 to learn to derive the intent of user messagesand administrator response messages.

The business portal 160 may receive one or more messaging intentkeywords 850 from the natural language processor 840. A messaging intentkeyword may encapsulate in a word or short phrase the intent of a usermessage and/or response message. For example, a user message with thetext, “How late are you open?” may correspond to a messaging intentkeyword of “operating hours.” A response message may have the text“Happy Times Laser Tag is open %business_hours%,” where“%business_hours%” is a dynamic field instructing theconsumer-to-business service 110 to write the operating hours of thebusiness in place of the dynamic field. This response message may alsocorrespond to the messaging intent keyword “operating hours.” As such,the natural language processor 840 determining one or more intentkeywords 850 may empower the business portal 160 to determine whichresponse message is appropriate to responding to a particular usermessage. The business portal 160 may therefore retrieve the responsemessage from a response message repository based on the one or moremessaging intent keywords 850.

The messaging interaction history may be provided by submitting aplurality of response messages to the natural language processor 840,the plurality of response messages comprising at least a portion—such asan initially-configured portion—of a response message repositoryconfigured by the administrators of the business page for the businessentity. The business portal 160 may receive an intent keyword mappingfrom the natural language processor 840 in response to submitting theplurality of response messages to the natural language processor 840,the intent keyword mapping defining associations between the pluralityof response messages and a plurality of intent keywords. The businessportal 160 may store the defined associations between the plurality ofresponse messages and the plurality of intent keywords in the responsemessage repository to empower the business portal 160 to identify theappropriate response message for a particular user message.

The consumer-to-business service 110 may add administrator messages thatare not existing response messages to learn additional responsemessages. The business portal 160 may receive a responding messagingpackage from the administrator messaging endpoint 825 and determine thatthe responding messaging package is not based on the response messagesent to the administrator messaging endpoint 825 in the form responsepackage 870. The business portal 160 may extract anadministrator-specified response message from the responding messagingpackage, extract a user message 830 from the messaging package 820, andsubmit the user message 830 and the administrator-specified responsemessage to the natural language processor 840. The business portal 60may receive an additional keyword mapping from the natural languageprocessor 840, the additional keyword mapping defining an associationbetween the administrator-specified response message and one or moreadditional intent keyword. The business portal 160 may therefore storethe administrator-specified response message in the response messagerepository and store the association between the administrator-specifiedresponse message and the one or more additional intent keywords in theresponse message repository, thereby learning theadministrator-specified response for potential future use. In someembodiments, this analysis and storage of the administrator-specifiedresponse message for future use may only be performed when it isindicated that it is to be done by the administrator.

The administrator making use of the proposed response message may signalthat the one or more intent keywords assigned to the user message 830and response message were accurately assigned. The administrator notmaking use of the proposed response message may signal that the one ormore intent keywords assigned to the user message 830 and/or responsemessage were not accurately assigned. As such, the business portal 160may receive a responding messaging package from the administratormessaging endpoint 825, determine whether the responding messagingpackage uses the response message, and train the natural languageprocessor based on whether the responding messaging package uses theresponse message.

The business portal 160 may determine an administrator account assignedto respond to the messaging package 820. The administrator account maybe identified as one of one or more administrator accounts associatedwith the business entity to which the use of the client device 120 hasdirected their message. The business portal 160 may construct a formresponse package 870 for delivery to an administrator messaging endpoint825 on an administrator client device 120 associated with theadministrator account for the assigned administrator. The businessportal 160 may transmit the form response package to the administratormessaging endpoint 825 for the administrator account, the form responsepackage 870 comprising the response message. The administrator messagingendpoint 825 may comprise an instantiation of the same program as themessaging endpoint 125 or may comprise a distinct software program.

The form response package 870 may be operative to configure theadministrator messaging endpoint 825 to respond to the messaging package820 via the messaging service 140 with the response message. The formresponse package 870 may be sent as part of or in combination with theuser message from the messaging package 820. The form response package870 may instruct the administrator messaging endpoint 825 to display acontrol in association with the user message notifying the administratorof the availability of the response message and empowering theadministrator to view, edit, and/or send the response message as aresponse to the user message. The user message and the proposed responsemessage may be sent together, with the proposed response message anaddition to the delivery of the user message to the administrator forreply by the administrator. The administrator messaging endpoint 825 maybe operative to display an option to transmit the response message tothe originating user's messaging endpoint 125.

The user of the administrator messaging endpoint 825 may transmit aresponding messaging package to the messaging service 140. The businessportal 160 may receive a responding messaging package from theadministrator messaging endpoint 825, the responding messaging packagecomprising the response message. The messaging service 140 may thentransmit the response message to the messaging endpoint 125 on theclient device 120 based on the response message being received from theadministrator messaging endpoint 825.

The response message may comprise one more dynamic fields, wherein adynamic field corresponds to a field that can take on a plurality ofassignments based on the context of the messaging user and the receivingbusiness entity. A dynamic field may be used to customize a responsemessage to a user, such as by including their preferred name or otherpersonalization information. A dynamic field may be used to customize aresponse message to current information about the business entity, suchas hours of operation, location, or other details. By using a dynamicfield instead of hardcoding in operating hours, location, or otherdetails, those details may be modified in a single registry of businessinformation rather than modifying every instance in which they mayappear in pre-prepared response messages. The messaging service 140 mayretrieve user account information associated with the messaging endpoint125 for the user, such as from a user account for the user with thesocial networking service 170, and assign one or more values to at leastone of the one or more dynamic fields based on the user accountinformation retrieved. In some cases, one or more dynamic fields may beassigned a product object, such as where a user message corresponds to aquery or request regarding a particular product.

In some cases, the natural language processing of the messaging package820 may determine one or more intent keywords 850 and, further, one ormore parameters. The parameters may define details of a user's requestedintent. For example, where a user's intent is to make a reservation at arestaurant (the restaurant the business entity being message), theparameters may define a desired reservation time and a number of peoplefor which the reservation should be made. Where a user's intent is toorder a product, the parameters may define the product to be ordered.The embodiments are not limited to these examples. The business portal160 may therefore configure an automated commerce interaction based onthe one or more intent keywords and the one or more parameters andinteroperate with the business entity to carry out the automatedcommerce interaction. In some cases, the automated commerce interactionmay comprise a reservation or purchase. In some cases, the businessportal 160 may determine a product object from a product catalog basedon at least one the one or more intent keywords and the one or moreparameters, the automated commerce interaction incorporating the productobject.

In some embodiments, the natural language processor 840 may return aconfidence associated with each of the intent keywords 850. The businessportal 160 may use a threshold to evaluate the intent keywordsassociated with messages by the natural language processor 840. Thebusiness portal 160 may only associate a response message with an intentkeyword in the response message repository where the natural languageprocessor 840 assigns the intent keyword a confidence at least equal tothe threshold. The business portal may only transmit an associatedresponse message to the administrator messaging endpoint 825 when itsassociated intent keyword was assigned a confidence of at least thethreshold in association with its match to the user message. In someembodiments, a first threshold may be used for storing intent keywordsin association with a response message and a second threshold may beused for determining whether to propose a response message to anadministrator. In some embodiments, every response message with anassociated intent keyword with a confidence at least meeting thethreshold may be sent to the administrator, and in others only theresponse message with an associated intent keyword with the highestconfidence of those received may be sent to the administrator. In someembodiments, an automated-reply threshold may be used, in which, if theresponse message is identified based on an intent keyword meeting theautomated-reply threshold, the response message is automatically sentwithout requiring administrator review or approval. In some cases, aresponse message may be flagged as not being subject toautomatic-sending, such as for business tasks (e.g., agreeing to acustom job, confirming special orders) that the administrator for thebusiness identifies as being too important to allow automatic approval.

FIG. 9 illustrates one embodiment of a second logic flow 900. The logicflow 900 may be representative of some or all of the operations executedby one or more embodiments described herein.

In the illustrated embodiment shown in FIG. 9, the logic flow 900 mayreceive a messaging package from a messaging endpoint at a messagingservice at block 902.

The logic flow 900 may perform a natural language processing of themessaging package to determine a response message predicted tocorrespond to the messaging package at block 904.

The logic flow 900 may determine an administrator account assigned torespond to the messaging package at block 906.

The logic flow 900 may transmit a form response package to anadministrator messaging endpoint for the administrator account, the formresponse package comprising the response message block 908.

The embodiments are not limited to this example.

Commerce Recommendations

People may engage in messaging conversations with each other using amessaging service that stores and forwards messages between messagingendpoints. People may also engage in messaging conversations withbusinesses and may receive product recommendations from businesses usinga messaging service. In any of these conversations specific products ortypes of products may be mentioned.

One person may comment to another that they're interested in purchasinga particular product or service or are looking at the available productswithin a category of products or services. For example, a user maymention that they're looking to purchase a new mobile phone, are lookingto try a new Thai restaurant, or some other conversational mention of aproduct or service. Similarly, a user may message with a businessregarding available products or services.

A messaging user may benefit from being reminded of their interest in aproduct or service when they are in a context that would makeprocurement of that product or service convenient. For example, a userconsidering purchasing an article of clothing may be convenience bybeing notified that the article of clothing—or a similar article—isavailable at a nearby store. They may particular benefit if thesuggested article is, for example, on sale.

As such, a user may benefit from having a messaging service monitortheir messaging conversations with individuals, groups, and businessesto determine their messaging affinity for various products, services,types of products, and types of services. The user may benefit fromhaving this messaging affinity combined with their current context toreceive timely recommendations as to products and services. They mayparticular benefit from receiving these recommendations on a mobiledevice that they carry with them, so that they may immediately orpromptly act on recommendations. As a result, a user may have animproved shopping experience that is enhanced by merely engaging intheir normal behavior of conversing with their friends and withbusinesses.

FIG. 10A illustrates an embodiment of a user interface 1000 for amessaging endpoint 125 displaying a messaging conversation 1010.

The user interface 1000 may include text control 1005 empowering theuser to enter text for inclusion in the messaging conversation 1010. Theuser of client device 120 and the messaging endpoint 125 may use textcontrols 1005 to enter textual elements of the message conversation1010, such as text messages for transmission to the second user on asecond client device. It will be appreciated that while the textcontrols 1005 and other controls of the messaging endpoint 125 aredepicted as touch-controls on a touch screen that other controls,including a hardware keyboard and hardware pointer control, may be usedwith other embodiments.

The messaging conversation 1010 may represent an interaction between auser and a representative for a business. In this messaging conversation1010 the business has thanked a user for a previous purchase, which hasprompted a conversation with the business representative as to productsthat might fulfill a need by the user. In this case, the businessrepresentative has mentioned a particular product via a productrecommendation 1015. In this case the product recommendation 1015 is anactionable product recommendation element that, when selected, maydisplay additional information about the product. However, in some casesthe product recommendation 1015 may comprise a plain-text name ordescription of the product, such as may be more likely to be used in aperson-to-person conversation. As shown in FIG. 10A, the user hasdecided not to act on the product recommendation 1015 at the time of themessaging conversation 1010.

It will be appreciated that while the illustrated embodiment illustratesan example in which the product recommendation 1015 for a product isgenerated by a conversation with a representative of a business, thatproduct recommendations and product references may be detected withinuser-to-user conversations that do include businesses or theirrepresentatives (other than may be involved in the providing of theconsumer-to-business messaging system 100 and/or messaging service 140).

FIG. 10B illustrates an embodiment of a user interface 1025 for amessaging endpoint 125 displaying a selection and promotion page.

The selection and promotion page may include a category selectionsection 1030. The category selection section 1030 comprises a pluralityof category controls. The selection of a category control by a userengages a category page displaying products within that category and/orbusinesses providing products within that category.

The selection and promotion page may include a selected products section1035. The selected products section 1035 may comprise a plurality ofproducts selected for the user by the consumer-to-business messagingsystem 100, such as based on a previous instance of that product or arelated product or product category being mentioned by the user in amessaging conversation or by a user or business with which the user wasengaging in a messaging conversation. In some embodiments, the user maybe empowered to view additional selected products by scrolling theselected products section 1035—such as by swiping left or right on theuser interface 1025 on the area of the screen containing the selectedproducts section 1035. As illustrated in FIG. 10B, the productrecommendation 1015 from the from FIG. 10A has been selected, possiblybecause the associated business is nearby and/or the product is on sale.

The selection and promotion page may include a selected businessessection 1040. In the illustrated example of FIG. 10B the selectedbusinesses section is for nearby businesses. However, in various casesbusinesses may be selected for promotion based on a plurality ofcriteria with physical proximity only being one criteria that may beused by the consumer-to-business messaging system 100.

FIG. 10C illustrates an embodiment of a user interface 1050 for amessaging endpoint 125 displaying a product page. The product page mayhave been reached by the user selecting the product recommended in theproduct recommendation 1015 in user interface 1025.

The product page may include a product section 1055 displayinginformation for the selected product. The information for the selectedproduct may include a name of the product, a text description of theproduct, a list price for the product, a current price for the product,savings provided by a different between the current price for theproduct and the list price for the product, and availability informationfor the product (in the illustrated example that the product is instock). The product section 1055 may include a purchase control—hererepresented as a “buy now” call-to-action button—empowering the user toinitiate purchasing of the product.

The product page may include a business section 1060 displayinginformation for the business being promoted as supplying the selectedproduct. The business section 1060 may include location information andoperating hours for the business. In some embodiments, selecting thelocation information may automatically trigger the providing ofdirections to the business location. The business section 1060 mayinclude a message control empowering the user to engage in messagingwith the business.

FIG. 10D illustrates an embodiment of a user interface 1075 for amessaging endpoint 125 displaying an updated messaging conversation1010.

The user may be empowered to include the selected product listing 1085in the messaging conversation 1010 with the business. The selectedproduct listing 1085 may include a name of the product, a current priceof the product, a business providing the product, and a “buy now”call-to-action button. As shown, the user has indicated in conversationthat they are interested in purchasing the product in the selectedproduct listing 1085. A representative for the business has responded tothis with an indication that the product is available and a reminder ofthe operating hours of the business. In some cases, the user may selectthe call-to-action purchase button and initiate purchase of the productprior to visiting the business. In other cases, the user may wait untilphysically visiting the business to purchase the product.

As illustrated in FIG. 10D, the product recommendation 1015 of userinterface 1000 has been updated to form updated product recommendation1085 with the new, lower price for the product. In such embodiments, auser may be able to return to a messaging conversation 1010 and see acurrent status of the product on offer.

An integrated messaging and payment system can provide convenience inthe processing of payment transactions for the purchase of a product orservice. Specifically, the integrated messaging and payment system canallow a user to perform a payment transaction with a merchant topurchase a product or service within a messaging endpoint 125. Forexample, the consumer-to-business messaging system 100 can allow theuser to initiate a payment transaction with a merchant whilecommunicating with the merchant via the messaging endpoint 125. Thus,the consumer-to-business messaging system 100 can enable a user toeasily interact with a merchant to inquire about and/or purchase aproduct from the user's client device 120 (e.g., a mobile device such asa smartphone).

Additionally, an embodiment of the consumer-to-business messaging system100 can simplify a method for processing refunds to users. For example,the consumer-to-business messaging system 100 can provide a way formerchants to issue refunds to the user via the messaging endpoint 125.Specifically, the consumer-to-business messaging system 100 can allow auser to request a refund from a merchant from within the messagingendpoint 125 by associating a messaging thread between the user and themerchant with a transaction identifier tied to a payment transactionbetween the user and the merchant. Thus, the merchant can issue a refundto a user without requiring the user to give the merchant sensitiveinformation (e.g., a card number) in a phone call or in person.

According to one or more embodiments, the consumer-to-business messagingsystem 100 can also allow users to pay merchants via a variety ofpayment methods. In particular, the consumer-to-business messagingsystem 100 can allow users to register a plurality of paymentcredentials with the system for use in payment transactions withmerchants. For example, the consumer-to-business messaging system 100can allow a user to select one or more of a plurality of registeredpayment credentials to pay for a product from a merchant using themessaging endpoint 125. Additionally, the consumer-to-business messagingsystem 100 also may allow merchants to provide a plurality of differentpayment options to the user based on the preferences or requirements ofthe merchants. Thus, the consumer-to-business messaging system 100 canprovide versatility of payment methods in electronic paymenttransactions between users and merchants.

Furthermore, the system can allow a consumer to make a pay a merchantfor a product or service without having to provide sensitive financialinformation (e.g., credit card number, checking account number) to themerchant. Thus, the consumer-to-business messaging system 100 canprovide increased security for the user. In particular, the user canavoid any fears of fraud when visiting a new merchant.

The consumer-to-business messaging system 100 can also increase securityfor the merchant. In particular, the consumer-to-business messagingsystem 100 can perform risk checks based on information maintained aboutthe consumer by a social networking system. The consumer-to-businessmessaging system 100 can deny a payment if the consumer is a knownfraudster or if the payment appears fraudulent based on informationabout the consumer or the merchant maintained by the system.

In addition allowing the users to exchange electronic communications,the consumer-to-business messaging system 100 can allow the users tosend and receive monetary payments to and from one another. In one ormore embodiments, the consumer-to-business messaging system 100 allowsusers to define and send a payment message to a merchant user. Forinstance, the consumer-to-business messaging system 100 can allow theuser to send a payment to a business via the messaging service 140.Likewise, the business can receive notice of the payment, and accept ordecline the payment. The business can communicate with theconsumer-to-business messaging system 100 to coordinate a transactionthat facilitates the payment between the users (i.e., their accounts).

In one or more embodiments, for example, the consumer-to-businessmessaging system 100 can communicate with a payment network to authorizeand process a transaction. For example, the consumer-to-businessmessaging system 100 can send a transaction to a payment gateway system.Once the payment gateway system receives the transaction, the paymentgateway system can send the transaction to the processor (e.g., apayment processing system) used by a payment merchant user's acquiringbank. Based on the method of the payment (e.g., consumer user'saccount), the payment processing system can transmit the transaction toan appropriate card network system. In many instances, the card networksystem then sends the transaction to an issuing bank system.

The issuing bank system either approves or declines the transaction, andsends the decision back to a card network system. The card network thensends the decision to the payment processing system. The paymentprocessing system can then forward the decision to the payment gatewaysystem, and in one or more embodiments, the payment gateway system canmaintain the details related to the transaction and the decision. Thepayment processing system also sends the decision to theconsumer-to-business messaging system 100.

In addition to authorizing a transaction, the payment network can alsoperform settlement tasks. For example, the consumer-to-businessmessaging system 100 can coordinate with the payment gateway system tosubmit a daily settlement batch including one or more capturedtransactions to an acquiring bank via the acquiring bank's preferredpayment processing system. The payment processing system then sends thesettlement batch to a server of the acquiring bank, which records adeposit in the amount of each transaction within the settlement batch toan account associated with the merchant.

The acquiring bank can then send a funding request in satisfaction ofthe deposit amount to the payment processing system, which passes thefunding request to the appropriate card network system. The card networksystem then sends the funding request to the issuing bank system. Theissuing bank system can post the transaction to the consumer user'saccount and pass a release of the funds to the card network system,which are then passed to the payment processing system, and then theacquiring bank.

FIG. 11 illustrates an embodiment of a consumer-to-business service 110providing an interface configuration 1170 to a messaging endpoint 125.An interface configuration 1170 may comprise a set of one or moreproducts, services, and/or businesses selected for suggestion to a userand arranged for display to the user. The interface configuration 1170may include display text and/or display images for each of one or morerecommendations. The interface configuration 1170 may define an orderingin which recommendations should be displayed for the user.

A user context component 1140 may be generally arranged to manage a usercontext 1145 associated with a user account for a messaging service 140.A user profile component 1150 may be generally arranged to retrieve auser profile 1155 for the user account. A recommendation component 1160may be generally arranged to determine one or more recommendations basedon the user context and the user profile and configure a recommendationinterface for a messaging endpoint 125 on a client device 120 based onthe recommendations, the messaging endpoint 125 associated with the useraccount for the messaging service 140. The user context 1145 maycomprise current information about the status of the user, such as theirlocation, current behavior, and other signals relevant to a currentpoint in time. The user profile 1155 may comprise long-term informationabout the user that reflects the history of the user and persistentinformation about the user. A recommendation produced by therecommendation component 1160 may be based on a product listing 1190received from the commerce front-end server 190 for a business. Therecommendation component 1160 may received and store a plurality ofproduct listings for each business for which the recommendationcomponent 1160 will recommend products, with each product listingdescribing a particular product.

A product listing 1190 may include an identifier (id) for each of theproducts. In some cases, the identifier for a product may be assigned bythe consumer-to-business service 110 to uniquely identify the productwithin an identifier space of the consumer-to-business service 110.Similarly, each user and business using the consumer-to-business service110 may be assigned an identifier. All of these identifiers may bewithin a common identifier space of the consumer-to-business service 110so that any entity or concept known to the consumer-to-business service110 may be referenced by its identifier within a unified namespace.Product listings may be stored with reference to the business that mayprovide them, such as by using the identifier for the business. Productlistings may be stored with reference to users that have purchased,rated, owned, recommended, or viewed the product, such as by listing arecord of the identifiers for the users. Similarly, each business may bestored with reference to the products that they provide, such as byusing the identifiers for the products. Where multiple businessesprovide a product, each business may have a distinct identifierassociated with its listing of the product or may each use the sameidentifier for its listing of the product. A product listing maycomprise a plurality of information relating to the product, such aspricing information, descriptive information, manufacturer information,availability information, and other relevant information. References toa product, such as for recommendation, suggestion, or ordering may beperformed using the identifier for the product.

The user profile 1155 may include a messaging affinity based on amessaging history for the user account, wherein determining the one ormore recommendations is based on the messaging affinity. A messagingaffinity may comprise an automatically-generated strength of therelationship between a user and a product, service, and/or businessbased on signals relating to the product, service, and/or business in amessaging conversation. A messaging affinity may be stronger for aproduct or service where a user has expressed an interest in aparticular product or server. A messaging affinity may be stronger for aproduct or service where a user has expressed an interest in aparticular type of product corresponding to the product or has expressedan interest in a particular type of service corresponding to theservice. A messaging affinity may be stronger for a business where auser has expressed an interest in the business or in a type of businesscorresponding to the business.

As such, the user profile 1155 may comprise a messaging history for theuser account, the one or more recommendations based at least in part onthe messaging history. One or more recommended products of the pluralityof recommended products may be determined based on the one or morerecommended products being referenced in the messaging history for theuser account.

The messaging service 140 may perform a consumer-to-business messaginginteraction between the user and a business entity. The recommendationcomponent 1160 may determine a referenced product recommended for a userof the user account in the consumer-to-business messaging interactionand include the referenced product in the one or more recommendations,the consumer-to-business messaging interaction comprising at least partof the user profile 1155. In some cases, the user context 1145 maycomprise at least a geographic location for the client device 120, theconsumer-to-business messaging interaction may be between the useraccount and a business entity account, and the recommendation component1160 may therefore determine to include the referenced product from theconsumer-to-business messaging interaction based at least in part on thebusiness entity account being associated with a business entitygeographic location within a geographic search area defined by thegeographic location for the client device.

The client device 120 may provide a device location 1155 to alocation-based service server 1130 which may then provide the devicelocation 1135 to the user context component 1140 for inclusion in theuser context 1145. A geographic search area may be defined by thecurrent geographic location received as the device location 1155. Thegeographic search area may be defined as an area within a defineddistance around the geographic location of the client device 120. Thedefined distance may be determined based on a detected current behaviorof the user, such as using a lower defined distance when a user isdetermined to be walking and a higher defined distance when a user isdetermined to be driving or riding in a vehicle.

As such, the user context 1145 may include at least a geographiclocation for the client device 120, wherein at least one of thedetermined recommendations is for an interaction with an entity selectedbased on being within a geographic search area defined by the geographiclocation for the client device 120. Further, the user profile 1155 maycomprise a plurality of recommended products, the one or morerecommendations comprising recommendations to purchase one or more ofthe recommended products from one or more business entities within ageographic search area defined by the geographic location.

The one or more recommendations may comprise one or more recommendationsto interact with one or more categories of business entities.Alternatively or additionally, the one or more recommendations maycomprise one or more recommendations to interact with one or morespecific business entities. The one or more recommendations may compriseone or more recommendations to purchase one or more specific products.The one or more recommendations may comprise one or more recommendationsto purchase one or more specific products from one or more specificbusiness entities.

In some cases, the products or services suggested to a user may beselected based on an amount that a business is willing to pay to theconsumer-to-business service 110 for promotion of their products orservices. The recommendation component 1160 may determining a pluralityof relevant products based on the user profile 1155 and the user context1145 and determining the one or more recommendations as highest-payingrecommendations of the plurality of relevant products. For example,where a set number of recommendations will be made to the user, that sethighest-paying number of relevant products may be suggested. Theplurality of relevant products may be determined according to thetechniques described herein, such as based on messaging affinity,messaging history, and/or the geographic location of the user asdetermined through using the location of the client device 120 as aproxy.

In some cases, a business may be selected for promotion or have theirproducts selected for promotion based on the willingness or enthusiasmof the user in opening messages from the business. The messaging service140 may track and log the frequency, percentage of the time, or othermetric for how often the user examines messages from a particularbusiness and thereby defined a message-open-rate for a plurality ofbusiness entities. The recommendation component 1160 may determine aplurality of relevant business entities based on the user profile 1155and the user context 345 and determine the one or more recommendationsbased on message-open-rates for the user account for the plurality ofrelevant business entities. As such, a user may be recommendationsbusinesses and/or products from those businesses based on theirenthusiasm for receiving messages from those businesses.

A user may sometimes be presented with suggestions that relate to theextension, modification, or other option for an existing product,service, or upcoming product to be acquired or service to have received.The recommendation component 1160 may receive a product listing 1190from a commerce front-end server 190 relating to an existing or upcomingservice and suggest the product or service associated with the productlisting 1190 to the user. For example, a user about to take an upcomingflight—which may be represented in the user context 1145—may bedelivered an option to upgrade to a higher-quality seat on the flight.The user context 1145 may indicate that the user is about to engage inthe upcoming service and the user profile 1155 may indicate that theuser has an interest in the sort of option being offered by thebusiness. As such, a user may receive only those promotions that areboth relevant to the user and of a type in which they are interested.

FIG. 12 illustrates an embodiment of a consumer-to-business service 110providing a fulfillment update message 1295 to a messaging endpoint 125.

The consumer portal 150 for the consumer-to-business service 110 mayreceive a product purchase request 1225 comprising a product listing1190 from the messaging endpoint 125 of a client device 120. Thereceived product listing 1190 may corresponding to a product listing1190 initially received from the commerce front-end server 190. Thereceived product listing 1190 may correspond to a selectedrecommendation, the selected recommendation comprising one of the one ormore recommendations produced by the recommendation component 160 andincluded in the interface configuration 1170 provided by therecommendation component 160.

The consumer-to-business service 110 may initiate a messagingconversation in the messaging service 140 between the messaging endpoint125 on the client device and a provider messaging endpoint 1225associated with the selected recommendation, the messaging conversationautomatically including the selected recommendation. This messagingconversation may empower a user to ask questions regarding the selectedrecommendation, arrange for purchase of the selected recommendation, andfor the user and the business to generally engage in a conversationregarding the selected recommendation.

The consumer-to-business service 110 may receive a recommendationacceptance message from the messaging endpoint 125 on the client device120 regarding acceptance of the selected recommendation. The messagingservice 140 may transmit the recommendation acceptance message to theprovider messaging endpoint 1225. In response, the provider messagingendpoint 1225—such as through the activities of a member of thebusiness—may transmit, and therefore the messaging service 140 receive(such as via the business portal 160) a fulfillment update message 1295from the provider messaging endpoint 1225 regarding fulfillment of theselected recommendation. A fulfillment update message 1295 may indicate,for example, that a purchase order has been carried out and that aproduct or service has been delivered or is ready for acquisition by theuser.

FIG. 13 illustrates one embodiment of a third logic flow 1300. The logicflow 1300 may be representative of some or all of the operationsexecuted by one or more embodiments described herein.

In the illustrated embodiment shown in FIG. 13, the logic flow 1300 mayreceive a user context associated with a user account for a messagingservice 140 at block 1302.

The logic flow 1300 may retrieve a user profile for the user account atblock 1304.

The logic flow 1300 may determine one or more recommendations based onthe user context and the user profile at block 1306.

The logic flow 1300 may configure a recommendation interface for amessaging endpoint on a client device based on the recommendations, themessaging endpoint associated with the user account for the messagingservice 140 at block 1308.

The embodiments are not limited to this example.

Automated Responses

People may desire to engage in messaging conversations withrepresentatives of a business in order to experience personalizedinteractions. Such interactions may be particularly useful where a userhas a query regarding the products or services of a business. However,representatives of a business may not be continuously available forresponding to messages. Fortunately, many user queries may be answerablethrough an automated system. A unified system for interacting with abusiness may therefore empower a user to receive immediate, automatedresponses to queries appropriate for automation and to receive prompt,human-generated responses to queries that are not handled throughautomated response. A human administrator addressing a user query may behelped by being able to view the existing conversation between the userand an automated system to better understand the context of a query thatdid not receive an automated response. As such, an automated responsemessaging system that empowers administration preemption of a messagingconversation may provide the best of both worlds: the continuousavailability of an automated system working in concert with theadaptability of a human administrator. As a result, users of theautomated response messaging system may receive immediate automatedanswers when possible and be smoothly transitioned to a humanadministrator when appropriate, enhancing the utility of messaging witha business via a messaging service.

FIG. 14A illustrates an embodiment of a user interface 1400 for amessaging endpoint 125 displaying a promoted message 1405.

A promoted message 1405 may correspond to an advertisement or othermessage generated to promote a particular product, service, or business.The promoted message 1405 may be directed to a particular messagingendpoint 125 for display to a particular user based on information knownabout the user of the client device 120, such as demographic andpreference information stored in a social networking service 170. Thepromoted message 1405 may include one or more images and one or moretext segments conveying the promotion of the product, service, orbusiness.

The promoted message 1405 may comprise a messaging control 1410. Themessaging control 1410 may empower a user of the client device 120 toinitiate a messaging conversation with a business (e.g., arepresentative for the business) using the messaging service 140. Themessaging control 1410 may comprise a messaging call-to-action buttonthat initiates a messaging conversation in relation to the promotedmessage 1405.

In some embodiments, the promoted message 1405 may include aavailability notification 1415. The availability notification 1415 mayindicate whether a representative of the business is currently availablefor messaging. In the illustrated embodiment of FIG. 14A, theavailability notification 1415 indicates that a representative iscurrently available. However, in other cases a representative may not becurrently available and the availability notification 1415 may indicatethat a representative is not currently available.

The determination of whether a representative is available may bedetermined based on an available schedule for representatives for thebusiness. One or more representatives for the business may be associatedas a group with a collective availability schedule registered with theconsumer-to-business messaging system 100. One ore more representativesfor the business may each be associated with individual availabilityschedules. An availability notification 1415 may indicate that arepresentative is available if a collective availability scheduleindicates that a representative is scheduled to be available or if anyof one or more individual availability schedules indicated that at leastone representative is scheduled to be available. An availabilitynotification 1415 may indicate that representative is not available if acollective availability schedule indicates that no representative isscheduled to be available or if all of one or more individualavailability schedules indicate that none of the one or morerepresentatives is scheduled to be available. Alternatively oradditionally, presence information for one or more representatives maybe used by the consumer-to-business messaging system 100 to determinewhether any of the representatives is currently available—such as on aclient device—for messaging and reflect this determination in theavailability notification 1415.

The promoted message 1405 may indicate an availability schedule formessaging with the business. A collective availability schedule, or aunion of one or more individual availability schedules, may be displayedfor the user. In some embodiments, an availability schedule formessaging with the business may be displayed in response to a userselection of a availability notification 1415 indicating that arepresentative is not currently available.

The promoted message 1405 may be displayed in association with socialnetworking information 1420 indicating a number of likes and umber ofcomments on the promoted message 1405 by users of theconsumer-to-business messaging system 100.

The promoted message 1405 may be displayed in association with socialnetworking controls 1423 empowering a user to like, comment on, or sharethe promoted message 1405.

FIG. 14B illustrates an embodiment of a user interface 1425 for amessaging endpoint 125 displaying an automated messaging interaction.The illustrated automated messaging interaction may have been initiatedby a user selecting the “chat now” messaging control 1410 described withreference to FIG. 14A. It will be appreciated that the messaginginteractions may also be initiated from other sources, such as pages fora business that may be presented within the messaging service 140 and/orthe social networking service 170.

An automated messaging interaction may include a chat originationnotification 1428 indicating the entry point for the messaginginteraction, in case the promoted message 1405. This chat originationnotification 1428 may serve to remind the initiating user—such as ifthey return to the interaction at a later time—of how the interactionbegan. This chat origination notification 1428 may serve to notify anadministrator of how a messaging interaction began if and when they takeover control of the interaction from an automated agent.

The automated messaging interaction may include an automated openingmessage 1430. The automated opening message may include both form textand user-specific text. The form text may comprise text shown to allusers—or a particular subset of users, such as may be determined bygeographic location of the user—that has been generated by anadministrator for the business for display at the initiation of anautomated messaging interaction. The user-specific text may include textelements extracted from a user profile for the user, in this case thename or preferred form of address for the user, “David.”

The automated messaging interaction may include a user query 1432generated by the user as a question to the business. The user query 1432may correspond to at least a portion of the user's motivation forinitiating the messaging interaction.

The automated messaging interaction may include an automated customizedresponse message 1434. The automated customized response message 1434may comprise a response to the user query 1432. The automated customizedresponse message 1434 may have been determined based on a keywordanalysis of the user query 1432, natural language processing (NLP)analysis of the user query 1432, a keyword-driven finite state machine(FSM) analysis of the user query 1432, a decision tree analysis of theuser query 1432, or according to any other known technique for branchingautomated interaction. In the illustrated example, the automatedcustomized response message 1434 is based on a location associated withthe user to determine a particular business location relevant to theuser, in this case a franchise location for the business. Some automatedcustomized response message 1434 may be stateless in that they do notdepend on the current state of a conversation, such as a query as to theoperating hours of a business.

Responses to queries may be presented by extracting answers from arepository of questions-and-answer pairs. Keyword analysis or NLP may beused to match a user query 1432 to a particular question in aquestion-and-answer pair and responded to with the answer from thequestion-and-answer pair. Analysis techniques may produce a weightedrelevance for each question in the question-and-answer pairs and theconsumer-to-business service 110 may response with the answercorresponding to the question with the highest weight. In someembodiments, a minimum threshold weight may be defined wherein noanswers is given—and instead an alert to an administrator isgenerated—if no question produces a weight above the minimum thresholdweight.

The automated messaging interaction may include a user comment 1436comprising a social interaction not representing a request forinformation. The automated messaging interaction may include anautomated form response message 1438 socially responding to the usercomment 1436.

An automated response such as automated opening message 1440, automatedcustomized response message 1434, and automated form response message1438 may be displayed with an automated-response tag indicating that theautomated response was generated automatically in order to inform a userof whether they are interacting with a human administrator or anautomated agent.

FIG. 14C illustrates an embodiment of a user interface 1450 for amessaging endpoint 125 displaying a partially-automated messaginginteraction. The partially-automated messaging interaction maytransition from automated to administrator-controlled when a user query1452 is not answered—though it may still be responded to—by theautomated system.

The partially-automated messaging interaction may begin with the samechat origination notification 1428 and automated opening message 1430 asthe interaction described with reference to FIG. 14B. However, thepartially-automated messaging interaction may include a user query 1452that the automated response configuration for the business does notinclude instructions for responding to. This may result from akeyword-driven automated response configuration not including keywordsfor the user query 1452, an NLP-driven automated response configurationnot recognizing the language used, or to any other failure of theautomated response configuration to provide a specific response to theuser query 1452.

In response to a failure to generate a specific response to the userquery 1452, the partially-automated messaging interaction may include anautomated administrator transition message 1454. The automatedadministrator transition message 1454 may comprise form text specifiedby an administrator for the business used when a specific response isnot generated.

Based on the display of a automated administrator transition message1454, the partially-automated messaging interaction may automaticallyinclude a responsiveness notification 1456 by the consumer-to-businessmessaging system 100. The responsiveness notification 1456 may beautomatically displayed whenever an automated response configurationfailures to provide a specific response to the user query 1452 after thedisplayed of an automated administrator transition message 1454. Theresponsiveness notification 1456 may indicate an estimated, predicated,typical, or otherwise representative responsiveness for the business.The responsiveness notification 1456 may notify the user of a delay thatthey should expect before receiving a response from an administrator forthe business. A time to respond may be used where one or moreadministrators are scheduled or determined to be available. Where aschedule or presence information indicates that no administrator isavailable the responsiveness notification 1456 may instead indicate thenext time an administrator is scheduled or expected to be available. Anamount of time—here one hour—indicated in the responsivenessnotification 1456 may in some embodiments be specified by anadministrator for the business and may in some embodiments beautomatically determined based on monitoring of response time ofadministrators of the business. The responsiveness notification 1456 maybe general across all the administrators of the business or may bespecific to a current on-duty administrator of the business, such as maybe generated from the actual response times for that administrator.

The partially-automated messaging interaction may include anadministrator response message 1458 generated by an administrator forthe business specifically in response to the user query 1452, not aspart of an automate response configuration. As illustrated, theadministrator response message 1458 is not marked as being an automatedresponse.

In some cases, an administrator response message 1458 may incorporatecontent, such as product content, for the business, as may berepresented in a page for the business. For example, product nodes maybe represented in the social graph and linked to the business in thesocial graph. Information from these product nodes may be included inthe messaging interaction, so as to display particular products andinformation associated with the products such as images of the products,identifiers for the products, prices for the products, or any otherproduct information. A displayed product node may empower the user toimmediately engage in purchase of the product from the business via themessaging endpoint 125.

The performance of the automated administrator transition message 1454may have automatically transmitted an alert to one or moreadministrators for the business scheduled to be available or otherwiseregistered as recipients of administrator alerts. An administratorviewing the alert may be empowered to view the entirety of thepartially-automated messaging interaction so as to understand thecontext to which they are responding, including the chat originationnotification 1428 providing a link to the originating promoted message1405.

An administrator response message 1458 response message may includeinformation automatically retrieved for the administrator. Theadministrator may enter form text or otherwise specify that informationshould be placed in the administrator response message 1458 based onretrieval from an information repository. Information may be retrievedsuch as product images, product descriptions, product availability,product available quantity, and other relevant product information.Information for a user may be stored in a user profile and used in thedetermination of retrieved information, such as where a shoe size for auser is specified and availability and the available quantity isdetermined for that particular shoe size for the user. In general,customization information for a user that applies across differentproducts (e.g., shoe size, clothing size) may be used in the retrievalof product information.

FIG. 15A illustrates an embodiment of a user interface 1500 for amessaging endpoint 125 displaying a user comment 1505 on a promotedmessage 1405.

Users may be empowered to comment on messages such as promoted message1405. A user comment 1505 may be displayed in association with thepromoted message 1405. In this case the user comment 1505 contains acomplaint from a user about a received product. The business may desireto privately respond to the user comment 1505 in order to determinewhether they can address the user's complaint or concern.

In general, businesses may be barred from initiating messagingconversations with users in order to avoid using the messaging service140 for spamming (i.e., the transmission of unwanted promotions,advertisements, or other communication). However, businesses may beallowed to send a single responding message to initiate a response to auser comment on a promoted message 1405 for the business while stillbeing restricted from sending additional responses unless the userengages the business in a dialog. In some embodiments, the business maybe restricted to only responding to a user comment 1505 within apredefined window of time after the posting of the user comment 1505,such as twenty-four hours or one week. In some embodiments, a set numberof private messages, one or more, may be allowed in response to a usercomment. A particular ratio of sent private messages to receivedresponses may be controlled by the business portal 160 for theconsumer-to-business messaging system 100.

The user comment 1505 may include response controls 1510. Some of theresponse controls 1510, such as the like control and respond control,may be generally available to all users, allowing them to support theuser comment 1505 or publicly respond to the user comment 1505. Themessage control may be limited to administrators of the business—andstill limited to only one response—and to friends of the user thatgenerated the user comment 1505.

In some embodiments, business administrators may only private message auser when the user has opted-in to private messaging from the business,such as may performed when the user interacts with a page for thebusiness in the messaging service 140 and/or social networking service170.

FIG. 15B illustrates an embodiment of a user interface 1525 for amessaging endpoint 125 displaying an administrator message dialog 1530in response to a user comment 1505. The user interface 1525 maycorrespond to an administrator for the business having selected themessage control.

The administrator selection of the message control may have instantiateda administrator message dialog 1530. The administrator message dialog1530 may empower the administrator to enter a response to the usercomment 1505 and send it to the user as a private message using themessaging service 140.

A user receiving a private message in response to a user comment 1505 bythe user on a promoted message 1405 may be reminded in the messagingconversation that the source of the private message is their usercomment 1505. The user may be shown their user comment 1505 and may beable to select a control to view their user comment 1505 in context,such as in adjacency to a promoted message 1405.

An administrator for a business may be empowered to view the largercontext for the relationship between the business and the user. Theadministrator may be able to retrieve previous purchases by the userfrom the business, pending purchases by the user with the business,previous messaging interactions between the user and the business,whether a user has subscribed to updates from the business, paymentinformation for the user (such as whether the user has paymentinformation on file without being able to view, for example, specificfinancial information such as credit card numbers), contact informationfor the user, and any other previous interaction between the user andthe business. Administrators may be able to classify users into one ormore categories, such as indicating whether a user is a fan, and laterview these classifications. Administrators may be able to assign apriority status to users, such as due to a user being a regular customeror high-value customer. Administrators may be provided notifications andalerts related to users according to an ordering (where multiplenotifications and/or alerts are queued) determined according to thepriority of the users. Users may be prompted to subscribe to updates forthe business using an in-line interface in which their response can beentered as “yes” or “no” within the messaging conversation. In general,any form of interaction with the business (purchasing products,requesting updates, etc.) may be performed in-line using text entry bythe user.

FIG. 16 illustrates an embodiment of a consumer-to-business service 110generating an automated response 1685.

A user profile component 1650 may be generally arranged to manage,update, and retrieve a plurality of user profiles for a plurality ofusers of the automate response messaging system 100. The user profilecomponent may retrieve a user profile 1655 associated with a useraccount for a messaging service 140. The user profile 1655 may beretrieved in response to the user performing a messaging initiation 1675using a messaging endpoint 125 on a client device 120.

A messaging automation component 1660 may be generally arranged toreceive notification of the messaging initiation 1675 by the messagingendpoint 125 on the client device 120. The messaging automationcomponent 1660 may receive the user profile 1655 from the user profilecomponent 1650. The messaging automation component 1660 may configure anautomated response 1685 based on the user profile 1655 in response tothe messaging initiation 1675 and transmit the automated response 1685to the messaging endpoint 125 via the messaging service 140. Theautomated response 1685 may be generated based on an automated responseconfiguration 1685 received from a commerce front-end server 190 for thebusiness. In some cases, the automated response configuration 1685 mayhave been created by an administrator interface to the messaging service140.

An automated response configuration 1685 may have a state and therebycorresponding to a finite state machine (FSM). An administratorinterface may include a mock chat window for the administrator to viewhow they are developing the tree, branching logic, or FSM. In somecases, administrator notification may occur where a user transitions toa state in a finite state machine without interaction instructions inthe automated response configuration 1685. Some states may be associatedwith product ordering, which may instantiate a product ordering dialog.Product ordering may use peer-to-peer or business-to-peer orderingtechniques.

Configuring the automated response 1685 may comprise extracting one ormore customization elements from the user profile 1655 and basing theautomated response 1685 on the extracted one or more customizationelements. The one or more customization element may comprise one or moreof a name, an address, a date of birth, and a location. A customizationelement such as a name may be included in the automated response 1685. Acustomization element such as an address (e.g., the user's address) orlocation (as may be determined according to geolocation of the messagingendpoint 125) may be used to determine, for example, a particularbusiness location relevant to the user with the automated response 1685generated in relation to that particular business location. In somecases an address may correspond to a delivery address, such as adelivery address field received as part of the messaging initiation1675. Alternatively or additionally, different dialogs may be used fordifferent geographic regions (e.g., cities, states, nations,multi-nation regions). Similarly, different dialogs may be used forpeople of different regions, such as different dialogs for minors andadults.

Where an automated response 1685 is based on a location, configuring theautomated response 1685 may include determining a current geographiclocation associated with the user account. This current geographiclocation may determined by retrieving a location of the client device120 from the client device, either requesting the location in responseto the messaging initiation 1675 or by retrieving a recorded locationfor the client device 120 recorded as part of providing generallocation-based services to the user of the client device 120.

In some cases, an automated response configuration 1695 may empower auser to initiate a commerce transaction in which a product or service isordered. The messaging automation component 1660 may receive a commercetransaction instruction as part of the automated response 1685 throughthe processing of the automated response configuration 1695. However,the consumer-to-business messaging system 100 may be configured torequire user confirmation of any commerce transaction to avoid a userbeing charged for an unwanted product or service. As such, the messagingautomation component 1660 may initiate a commerce transactionconfirmation dialog in response to the commerce transaction instructionto confirm that commerce transaction with the user and only perform thecommerce transaction—which may include performing a financialtransaction and submitting an order request to the commerce front-endserver 190—in response to an affirmative response from the user to thecommerce transaction confirmation dialog.

Users may be shown advertisements, which may comprise messages such aspromoted message 1405. The consumer-to-business service 110 may displayan advertisement, such as in the messaging endpoint 125 or on a web pageassociated with the consumer-to-business messaging system 100 such as aweb page for the social networking service 170. The consumer-to-businessservice 110 may receive a user selection of the advertisement andinstantiate the messaging endpoint 125—such as a messaging widget—inresponse to the user selection of the advertisement.

In some cases, engaging an advertisement or link may initiate a deeplink into the messaging endpoint 125 in an interaction with thebusiness. This messaging interaction may include controls for orderingparticular products that may be recommended or otherwise presentedduring the messaging interaction. Users may be empowered to select thecontrols as buttons or may be empowered to select a control by enteringtext corresponding to the control.

In some cases, a user may initiate messaging with a business by enteringa name or other identifier for the business into an address field forthe messaging endpoint 125. A messaging endpoint 125 may supportauto-complete in the address field. Auto-completion may match againstother users known to the user, against nearby businesses, againstfollowed businesses, against liked businesses, against businesses withwhich the user has engaged in a transaction, or against all businessesin various embodiments.

As discussed at least with reference to FIG. 14C, in some cases anadministrator may take control of an automated interaction. Themessaging automation component 1660 may perform an automated interactionvia the messaging endpoint 125 based on the configured automatedresponse 1685 and record the automated interaction. The messagingautomation component 1660 may then display the recorded automatedinteraction via an administrator interface for the automated response inresponse to an administrator for the business taking control of theinteraction with the user.

The messaging automation component 1660 may perform an automatedinteraction via the messaging endpoint 125 based on the configuredautomated response 1685. The messaging automation component 1660 maydetermine that a current state for the automated interaction indicatesadministrator notification. The messaging automation component 1660 maytransmit a notification to an administrator account for the automatedresponse 1685 in response to determining that the current state for theautomated interaction indicates administrator notification. A state forthe automated interaction indicating administrator notification may bespecified in the automated response configuration 1695.

Different administrators may be associated with different locations,whether particular business locations or particular geographic regions.Similarly, different administrators may be used for different categoriesof customers (e.g., financial status, preferred language). Therefore,the administrator account to which the notification is transmitted maybe determined from a plurality of administrator accounts based on userinformation from the user profile 1655, the user information comprisingat least one of a user location and user demographic information.

In some cases the automated response configuration 1695 may specify abranching response or otherwise depend on a user information elementthat may be specified in a user profile 1655. However, some users maynot have complete user profiles. The messaging automation component 1660may therefore prompt users to add information to their user profile inorder to receive an improved benefit from the automated interaction. Themessaging automation component 1660 may determine that the automatedresponse 1685 is operative to be configured according to a userinformation element, determine that the user information element is notspecified in the user profile 1655, and prompt specification of the userinformation element for the user profile 1655 in response to determiningthat the automated response is operative to be configured according tothe user information element and that the user information element isnot specified in the user profile. This may comprise instantiating adialog on the messaging endpoint 125 or an in-line query for informationin an automated interaction.

In some cases, a messaging interaction may be embedded within a webpage, such as third-party web page for the business. The messagingendpoint 125 may comprise a messaging widget for the messaging service140 embedded in the third-party web page. The messaging service 140 maytherefore perform an automated interaction via the messaging widgetbased on the configured automated response 1685. Where a messagingwidget embedded in a third-party webpage is used the user account anduser profile may be identified based on a web cookie stored on andreceived from the client device 120.

An integrated messaging and payment system can provide convenience inthe processing of payment transactions for the purchase of a product orservice. Specifically, the integrated messaging and payment system canallow a user to perform a payment transaction with a merchant topurchase a product or service within a messaging endpoint 125. Forexample, the consumer-to-business messaging system 100 can allow theuser to initiate a payment transaction with a merchant whilecommunicating with the merchant via the messaging endpoint 125. Thus,the consumer-to-business messaging system 100 can enable a user toeasily interact with a merchant to inquire about and/or purchase aproduct from the user's client device 120 (e.g., a mobile device such asa smartphone).

Additionally, an embodiment of the consumer-to-business messaging system100 can simplify a method for processing refunds to users. For example,the consumer-to-business messaging system 100 can provide a way formerchants to issue refunds to the user via the messaging endpoint 125.Specifically, the consumer-to-business messaging system 100 can allow auser to request a refund from a merchant from within the messagingendpoint 125 by associating a messaging thread between the user and themerchant with a transaction identifier tied to a payment transactionbetween the user and the merchant. Thus, the merchant can issue a refundto a user without requiring the user to give the merchant sensitiveinformation (e.g., a card number) in a phone call or in person.

According to one or more embodiments, the consumer-to-business messagingsystem 100 can also allow users to pay merchants via a variety ofpayment methods. In particular, the consumer-to-business messagingsystem 100 can allow users to register a plurality of paymentcredentials with the system for use in payment transactions withmerchants. For example, the consumer-to-business messaging system 100can allow a user to select one or more of a plurality of registeredpayment credentials to pay for a product from a merchant using themessaging endpoint 125. Additionally, the consumer-to-business messagingsystem 100 also may allow merchants to provide a plurality of differentpayment options to the user based on the preferences or requirements ofthe merchants. Thus, the consumer-to-business messaging system 100 canprovide versatility of payment methods in electronic paymenttransactions between users and merchants.

Furthermore, the system can allow a consumer to make a pay a merchantfor a product or service without having to provide sensitive financialinformation (e.g., credit card number, checking account number) to themerchant. Thus, the consumer-to-business messaging system 100 canprovide increased security for the user. In particular, the user canavoid any fears of fraud when visiting a new merchant.

The consumer-to-business messaging system 100 can also increase securityfor the merchant. In particular, the consumer-to-business messagingsystem 100 can perform risk checks based on information maintained aboutthe consumer by a social networking system. The consumer-to-businessmessaging system 100 can deny a payment if the consumer is a knownfraudster or if the payment appears fraudulent based on informationabout the consumer or the merchant maintained by the system.

In addition allowing the users to exchange electronic communications,the consumer-to-business messaging system 100 can empower the users tosend and receive monetary payments to and from one another. In one ormore embodiments, the consumer-to-business messaging system 100 allowsusers to define and send a payment message to a merchant user. Forinstance, the consumer-to-business messaging system 100 can allow theuser to send a payment to a business via the messaging service 140.Likewise, the business can receive notice of the payment, and accept ordecline the payment. The business can communicate with theconsumer-to-business messaging system 100 to coordinate a transactionthat facilitates the payment between the users (i.e., their accounts).

In one or more embodiments, for example, the consumer-to-businessmessaging system 100 can communicate with a payment network to authorizeand process a transaction. For example, the consumer-to-businessmessaging system 100 can send a transaction to a payment gateway system.Once the payment gateway system receives the transaction, the paymentgateway system can send the transaction to the processor (e.g., apayment processing system) used by a payment merchant user's acquiringbank. Based on the method of the payment (e.g., consumer user'saccount), the payment processing system can transmit the transaction toan appropriate card network system. In many instances, the card networksystem then sends the transaction to an issuing bank system.

The issuing bank system either approves or declines the transaction, andsends the decision back to a card network system. The card network thensends the decision to the payment processing system. The paymentprocessing system can then forward the decision to the payment gatewaysystem, and in one or more embodiments, the payment gateway system canmaintain the details related to the transaction and the decision. Thepayment processing system also sends the decision to theconsumer-to-business messaging system 100.

In addition to authorizing a transaction, the payment network can alsoperform settlement tasks. For example, the consumer-to-businessmessaging system 100 can coordinate with the payment gateway system tosubmit a daily settlement batch including one or more capturedtransactions to an acquiring bank via the acquiring bank's preferredpayment processing system. The payment processing system then sends thesettlement batch to a server of the acquiring bank, which records adeposit in the amount of each transaction within the settlement batch toan account associated with the merchant.

The acquiring bank can then send a funding request in satisfaction ofthe deposit amount to the payment processing system, which passes thefunding request to the appropriate card network system. The card networksystem then sends the funding request to the issuing bank system. Theissuing bank system can post the transaction to the consumer user'saccount and pass a release of the funds to the card network system,which are then passed to the payment processing system, and then theacquiring bank.

FIG. 17 illustrates one embodiment of a fourth logic flow 1700. Thelogic flow 1700 may be representative of some or all of the operationsexecuted by one or more embodiments described herein.

In the illustrated embodiment shown in FIG. 17, the logic flow 1700 mayreceive a user profile associated with a user account for a messagingservice at block 1702.

The logic flow 1700 may receive a messaging initiation from a messagingendpoint on a client device at block 1704.

The logic flow 1700 may configure an automated response based on theuser profile in response to the messaging initiation at block 1706.

The embodiments are not limited to this example.

Computer System Embodiments

FIG. 18 illustrates a block diagram of a centralized system 1800. Thecentralized system 1800 may implement some or all of the structureand/or operations for the system 100 in a single computing entity, suchas entirely within a single device 1820.

The device 1820 may comprise any electronic device capable of receiving,processing, and sending information for the system 100. Examples of anelectronic device may include without limitation an ultra-mobile device,a mobile device, a personal digital assistant (PDA), a mobile computingdevice, a smart phone, a telephone, a digital telephone, a cellulartelephone, ebook readers, a handset, a one-way pager, a two-way pager, amessaging device, a computer, a personal computer (PC), a desktopcomputer, a laptop computer, a notebook computer, a netbook computer, ahandheld computer, a tablet computer, a server, a server array or serverfarm, a web server, a network server, an Internet server, a workstation, a mini-computer, a main frame computer, a supercomputer, anetwork appliance, a web appliance, a distributed computing system,multiprocessor systems, processor-based systems, consumer electronics,programmable consumer electronics, game devices, television, digitaltelevision, set top box, wireless access point, base station, subscriberstation, mobile subscriber center, radio network controller, router,hub, gateway, bridge, switch, machine, or combination thereof. Theembodiments are not limited in this context.

The device 1820 may execute processing operations or logic for thesystem 100 using a processing component 1830. The processing component1830 may comprise various hardware elements, software elements, or acombination of both. Examples of hardware elements may include devices,logic devices, components, processors, microprocessors, circuits,processor circuits, circuit elements (e.g., transistors, resistors,capacitors, inductors, and so forth), integrated circuits, applicationspecific integrated circuits (ASIC), programmable logic devices (PLD),digital signal processors (DSP), field programmable gate array (FPGA),memory units, logic gates, registers, semiconductor device, chips,microchips, chip sets, and so forth. Examples of software elements mayinclude software components, programs, applications, computer programs,application programs, system programs, software development programs,machine programs, operating system software, middleware, firmware,software modules, routines, subroutines, functions, methods, procedures,software interfaces, application program interfaces (API), instructionsets, computing code, computer code, code segments, computer codesegments, words, values, symbols, or any combination thereof.Determining whether an embodiment is implemented using hardware elementsand/or software elements may vary in accordance with any number offactors, such as desired computational rate, power levels, heattolerances, processing cycle budget, input data rates, output datarates, memory resources, data bus speeds and other design or performanceconstraints, as desired for a given implementation.

The device 1820 may execute communications operations or logic for thesystem 100 using communications component 1840. The communicationscomponent 1840 may implement any well-known communications techniquesand protocols, such as techniques suitable for use with packet-switchednetworks (e.g., public networks such as the Internet, private networkssuch as an enterprise intranet, and so forth), circuit-switched networks(e.g., the public switched telephone network), or a combination ofpacket-switched networks and circuit-switched networks (with suitablegateways and translators). The communications component 1840 may includevarious types of standard communication elements, such as one or morecommunications interfaces, network interfaces, network interface cards(NIC), radios, wireless transmitters/receivers (transceivers), wiredand/or wireless communication media, physical connectors, and so forth.By way of example, and not limitation, communication media 1812, 1842include wired communications media and wireless communications media.Examples of wired communications media may include a wire, cable, metalleads, printed circuit boards (PCB), backplanes, switch fabrics,semiconductor material, twisted-pair wire, co-axial cable, fiber optics,a propagated signal, and so forth. Examples of wireless communicationsmedia may include acoustic, radio-frequency (RF) spectrum, infrared andother wireless media.

The client-to-business service device 1820 may implement theconsumer-to-business service 110 in a single computing device. Theclient-to-business server device 1820 may communicate with other devicesover a communications media 1812 using communications signals 1814 viathe communications component 1840. The devices may be internal orexternal to the client-to-business server device 1820 as desired for agiven implementation. The devices may include the client device 120 andthe commerce front-end server 190.

FIG. 19 illustrates a block diagram of a distributed system 1900. Thedistributed system 1900 may distribute portions of the structure and/oroperations for the system 100 across multiple computing entities.Examples of distributed system 1900 may include without limitation aclient-server architecture, a 3-tier architecture, an N-tierarchitecture, a tightly-coupled or clustered architecture, apeer-to-peer architecture, a master-slave architecture, a shareddatabase architecture, and other types of distributed systems. Theembodiments are not limited in this context.

The distributed system 1900 may comprise a plurality of server devices,including one or more messaging server devices 1940, one or more clientcommerce server devices 1950, one or more business commerce serverdevices 1960, and one or more social networking server devices 1970. Ingeneral, the server devices 1940, 1950, 1960, and 1970 may be the sameor similar to the client-to-business server device 1820 as describedwith reference to FIG. 18. For instance, the server devices 1940, 1950,1960, and may each comprise a processing component and a communicationscomponent 1940 which are the same or similar to the processing component630 and the communications component 640, respectively, as describedwith reference to FIG. 6. In another example, the server devices 1940,1950, 1960, and 1970 may communicate over a communications media 1912using communications signals 1914 via the communications components.

The messaging server devices 1940 may comprise or employ one or moreprograms that operate to perform various methodologies in accordancewith the described embodiments. In one embodiment, for example, themessaging server devices 1940 may implement the messaging service 140.

The client commerce server devices 1950 may comprise or employ one ormore programs that operate to perform various methodologies inaccordance with the described embodiments. In one embodiment, forexample, the client commerce server devices 1950 may implement theconsumer portal 150.

In some embodiments, for example, the client commerce server devices1950 may implement the user context component 1140, the user profilecomponent 1150, and the recommendation component 1160. In otherembodiments, these components may be implemented by other serverdevices, such as specific recommendation server devices.

The business commerce server devices 1960 may comprise or employ one ormore programs that operate to perform various methodologies inaccordance with the described embodiments. In one embodiment, forexample, the business commerce server devices 1960 may implement thebusiness portal 160.

The social networking server devices 1970 may comprise or employ one ormore programs that operate to perform various methodologies inaccordance with the described embodiments. In one embodiment, forexample, the social networking server devices 1970 may implement thesocial networking service 170.

The consumer-to-business service 110 may communicate with a plurality ofclient devices 1920 similar to the client device 120, each executing amessaging endpoint 125. The consumer-to-business service 110 maycommunicate with a plurality of commerce front-end server devices 1990corresponding to one or more business entities.

FIG. 20 illustrates an embodiment of an exemplary computing architecture2000 suitable for implementing various embodiments as previouslydescribed. In one embodiment, the computing architecture 2000 maycomprise or be implemented as part of an electronic device. Examples ofan electronic device may include those described with reference to FIGS.18 and 19, among others. The embodiments are not limited in thiscontext.

As used in this application, the terms “system” and “component” areintended to refer to a computer-related entity, either hardware, acombination of hardware and software, software, or software inexecution, examples of which are provided by the exemplary computingarchitecture 2000. For example, a component can be, but is not limitedto being, a process running on a processor, a processor, a hard diskdrive, multiple storage drives (of optical and/or magnetic storagemedium), an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a server and the server can be a component. One or more componentscan reside within a process and/or thread of execution, and a componentcan be localized on one computer and/or distributed between two or morecomputers. Further, components may be communicatively coupled to eachother by various types of communications media to coordinate operations.The coordination may involve the uni-directional or bi-directionalexchange of information. For instance, the components may communicateinformation in the form of signals communicated over the communicationsmedia. The information can be implemented as signals allocated tovarious signal lines. In such allocations, each message is a signal.Further embodiments, however, may alternatively employ data messages.Such data messages may be sent across various connections. Exemplaryconnections include parallel interfaces, serial interfaces, and businterfaces.

The computing architecture 2000 includes various common computingelements, such as one or more processors, multi-core processors,co-processors, memory units, chipsets, controllers, peripherals,interfaces, oscillators, timing devices, video cards, audio cards,multimedia input/output (I/O) components, power supplies, and so forth.The embodiments, however, are not limited to implementation by thecomputing architecture 2000.

As shown in FIG. 20, the computing architecture 2000 comprises aprocessing unit 2004, a system memory 2006 and a system bus 2008. Theprocessing unit 2004 can be any of various commercially availableprocessors, including without limitation an AMD® Athlon®, Duron® andOpteron® processors; ARM® application, embedded and secure processors;IBM® and Motorola® DragonBall® and PowerPC® processors; IBM and Sony®Cell processors; Intel® Celeron®, Core (2) Duo®, Itanium®, Pentium®,Xeon®, and XScale® processors; and similar processors. Dualmicroprocessors, multi-core processors, and other multi-processorarchitectures may also be employed as the processing unit 2004.

The system bus 2008 provides an interface for system componentsincluding, but not limited to, the system memory 2006 to the processingunit 2004. The system bus 2008 can be any of several types of busstructure that may further interconnect to a memory bus (with or withouta memory controller), a peripheral bus, and a local bus using any of avariety of commercially available bus architectures. Interface adaptersmay connect to the system bus 2008 via a slot architecture. Example slotarchitectures may include without limitation Accelerated Graphics Port(AGP), Card Bus, (Extended) Industry Standard Architecture ((E)ISA),Micro Channel Architecture (MCA), NuBus, Peripheral ComponentInterconnect (Extended) (PCI(X)), PCI Express, Personal Computer MemoryCard International Association (PCMCIA), and the like.

The computing architecture 2000 may comprise or implement variousarticles of manufacture. An article of manufacture may comprise acomputer-readable storage medium to store logic. Examples of acomputer-readable storage medium may include any tangible media capableof storing electronic data, including volatile memory or non-volatilememory, removable or non-removable memory, erasable or non-erasablememory, writeable or re-writeable memory, and so forth. Examples oflogic may include executable computer program instructions implementedusing any suitable type of code, such as source code, compiled code,interpreted code, executable code, static code, dynamic code,object-oriented code, visual code, and the like. Embodiments may also beat least partly implemented as instructions contained in or on anon-transitory computer-readable medium, which may be read and executedby one or more processors to enable performance of the operationsdescribed herein.

The system memory 2006 may include various types of computer-readablestorage media in the form of one or more higher speed memory units, suchas read-only memory (ROM), random-access memory (RAM), dynamic RAM(DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), staticRAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM),electrically erasable programmable ROM (EEPROM), flash memory, polymermemory such as ferroelectric polymer memory, ovonic memory, phase changeor ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS)memory, magnetic or optical cards, an array of devices such as RedundantArray of Independent Disks (RAID) drives, solid state memory devices(e.g., USB memory, solid state drives (SSD) and any other type ofstorage media suitable for storing information. In the illustratedembodiment shown in FIG. 20, the system memory 2006 can includenon-volatile memory 2010 and/or volatile memory 2012. A basicinput/output system (BIOS) can be stored in the non-volatile memory2010.

The computer 2002 may include various types of computer-readable storagemedia in the form of one or more lower speed memory units, including aninternal (or external) hard disk drive (HDD) 2014, a magnetic floppydisk drive (FDD) 2016 to read from or write to a removable magnetic disk2018, and an optical disk drive 2020 to read from or write to aremovable optical disk 2022 (e.g., a CD-ROM or DVD). The HDD 2014, FDD2016 and optical disk drive 2020 can be connected to the system bus 2008by a HDD interface 2024, an FDD interface 2026 and an optical driveinterface 2028, respectively. The HDD interface 2024 for external driveimplementations can include at least one or both of Universal Serial Bus(USB) and IEEE 1394 interface technologies.

The drives and associated computer-readable media provide volatileand/or nonvolatile storage of data, data structures, computer-executableinstructions, and so forth. For example, a number of program modules canbe stored in the drives and memory units 2010, 2012, including anoperating system 2030, one or more application programs 2032, otherprogram modules 2034, and program data 2036. In one embodiment, the oneor more application programs 2032, other program modules 2034, andprogram data 2036 can include, for example, the various applicationsand/or components of the system 100.

A user can enter commands and information into the computer 2002 throughone or more wire/wireless input devices, for example, a keyboard 2038and a pointing device, such as a mouse 2040. Other input devices mayinclude microphones, infra-red (IR) remote controls, radio-frequency(RF) remote controls, game pads, stylus pens, card readers, dongles,finger print readers, gloves, graphics tablets, joysticks, keyboards,retina readers, touch screens (e.g., capacitive, resistive, etc.),trackballs, trackpads, sensors, styluses, and the like. These and otherinput devices are often connected to the processing unit 2004 through aninput device interface 2042 that is coupled to the system bus 2008, butcan be connected by other interfaces such as a parallel port, IEEE 1394serial port, a game port, a USB port, an IR interface, and so forth.

A monitor 2044 or other type of display device is also connected to thesystem bus 2008 via an interface, such as a video adaptor 2046. Themonitor 2044 may be internal or external to the computer 2002. Inaddition to the monitor 2044, a computer typically includes otherperipheral output devices, such as speakers, printers, and so forth.

The computer 2002 may operate in a networked environment using logicalconnections via wire and/or wireless communications to one or moreremote computers, such as a remote computer 2048. The remote computer2048 can be a workstation, a server computer, a router, a personalcomputer, portable computer, microprocessor-based entertainmentappliance, a peer device or other common network node, and typicallyincludes many or all of the elements described relative to the computer2002, although, for purposes of brevity, only a memory/storage device2050 is illustrated. The logical connections depicted includewire/wireless connectivity to a local area network (LAN) 2052 and/orlarger networks, for example, a wide area network (WAN) 2054. Such LANand WAN networking environments are commonplace in offices andcompanies, and facilitate enterprise-wide computer networks, such asintranets, all of which may connect to a global communications network,for example, the Internet.

When used in a LAN networking environment, the computer 2002 isconnected to the LAN 2052 through a wire and/or wireless communicationnetwork interface or adaptor 2056. The adaptor 2056 can facilitate wireand/or wireless communications to the LAN 2052, which may also include awireless access point disposed thereon for communicating with thewireless functionality of the adaptor 2056.

When used in a WAN networking environment, the computer 2002 can includea modem 2058, or is connected to a communications server on the WAN2054, or has other means for establishing communications over the WAN2054, such as by way of the Internet. The modem 2058, which can beinternal or external and a wire and/or wireless device, connects to thesystem bus 2008 via the input device interface 2042. In a networkedenvironment, program modules depicted relative to the computer 2002, orportions thereof, can be stored in the remote memory/storage device2050. It will be appreciated that the network connections shown areexemplary and other means of establishing a communications link betweenthe computers can be used.

The computer 2002 is operable to communicate with wire and wirelessdevices or entities using the IEEE 802 family of standards, such aswireless devices operatively disposed in wireless communication (e.g.,IEEE 802.20 over-the-air modulation techniques). This includes at leastWi-Fi (or Wireless Fidelity), WiMax, and Bluetooth™ wirelesstechnologies, among others. Thus, the communication can be a predefinedstructure as with a conventional network or simply an ad hoccommunication between at least two devices. Wi-Fi networks use radiotechnologies called IEEE 802.20x (a, b, g, n, etc.) to provide secure,reliable, fast wireless connectivity. A Wi-Fi network can be used toconnect computers to each other, to the Internet, and to wire networks(which use IEEE 802.3-related media and functions).

FIG. 21 illustrates a block diagram of an exemplary communicationsarchitecture 2100 suitable for implementing various embodiments aspreviously described. The communications architecture 2100 includesvarious common communications elements, such as a transmitter, receiver,transceiver, radio, network interface, baseband processor, antenna,amplifiers, filters, power supplies, and so forth. The embodiments,however, are not limited to implementation by the communicationsarchitecture 2100.

As shown in FIG. 21, the communications architecture 2100 comprisesincludes one or more clients 2102 and servers 2104. The clients 2102 mayimplement the client device 910. The servers 2104 may implement theserver device 950. The clients 2102 and the servers 2104 are operativelyconnected to one or more respective client data stores 2108 and serverdata stores 2110 that can be employed to store information local to therespective clients 2102 and servers 2104, such as cookies and/orassociated contextual information.

The clients 2102 and the servers 2104 may communicate informationbetween each other using a communication framework 2106. Thecommunications framework 2106 may implement any well-knowncommunications techniques and protocols. The communications framework2106 may be implemented as a packet-switched network (e.g., publicnetworks such as the Internet, private networks such as an enterpriseintranet, and so forth), a circuit-switched network (e.g., the publicswitched telephone network), or a combination of a packet-switchednetwork and a circuit-switched network (with suitable gateways andtranslators).

The communications framework 2106 may implement various networkinterfaces arranged to accept, communicate, and connect to acommunications network. A network interface may be regarded as aspecialized form of an input output interface. Network interfaces mayemploy connection protocols including without limitation direct connect,Ethernet (e.g., thick, thin, twisted pair 10/100/1000 Base T, and thelike), token ring, wireless network interfaces, cellular networkinterfaces, IEEE 802.11a-x network interfaces, IEEE 802.16 networkinterfaces, IEEE 802.20 network interfaces, and the like. Further,multiple network interfaces may be used to engage with variouscommunications network types. For example, multiple network interfacesmay be employed to allow for the communication over broadcast,multicast, and unicast networks. Should processing requirements dictatea greater amount speed and capacity, distributed network controllerarchitectures may similarly be employed to pool, load balance, andotherwise increase the communicative bandwidth required by clients 2102and the servers 2104. A communications network may be any one and thecombination of wired and/or wireless networks including withoutlimitation a direct interconnection, a secured custom connection, aprivate network (e.g., an enterprise intranet), a public network (e.g.,the Internet), a Personal Area Network (PAN), a Local Area Network(LAN), a Metropolitan Area Network (MAN), an Operating Missions as Nodeson the Internet (OMNI), a Wide Area Network (WAN), a wireless network, acellular network, and other communications networks.

FIG. 22 illustrates an embodiment of a device 2200 for use in amulticarrier OFDM system, such as the system 100. Device 2200 mayimplement, for example, software components 2260 as described withreference to system 100 and/or a logic circuit 2235. The logic circuit2235 may include physical circuits to perform operations described forthe system 100. As shown in FIG. 22, device 2200 may include a radiointerface 2210, baseband circuitry 2220, and computing platform 2230,although embodiments are not limited to this configuration.

The device 2200 may implement some or all of the structure and/oroperations for the system 100 and/or logic circuit 2235 in a singlecomputing entity, such as entirely within a single device.Alternatively, the device 2200 may distribute portions of the structureand/or operations for the system 100 and/or logic circuit 2235 acrossmultiple computing entities using a distributed system architecture,such as a client-server architecture, a 3-tier architecture, an N-tierarchitecture, a tightly-coupled or clustered architecture, apeer-to-peer architecture, a master-slave architecture, a shareddatabase architecture, and other types of distributed systems. Theembodiments are not limited in this context.

In one embodiment, radio interface 2210 may include a component orcombination of components adapted for transmitting and/or receivingsingle carrier or multi-carrier modulated signals (e.g., includingcomplementary code keying (CCK) and/or orthogonal frequency divisionmultiplexing (OFDM) symbols) although the embodiments are not limited toany specific over-the-air interface or modulation scheme. Radiointerface 2210 may include, for example, a receiver 2212, a transmitter2216 and/or a frequency synthesizer 2214. Radio interface 2210 mayinclude bias controls, a crystal oscillator and/or one or more antennas2218. In another embodiment, radio interface 2210 may use externalvoltage-controlled oscillators (VCOs), surface acoustic wave filters,intermediate frequency (IF) filters and/or RF filters, as desired. Dueto the variety of potential RF interface designs an expansivedescription thereof is omitted.

Baseband circuitry 2220 may communicate with radio interface 2210 toprocess receive and/or transmit signals and may include, for example, ananalog-to-digital converter 2222 for down converting received signals, adigital-to-analog converter 2224 for up converting signals fortransmission. Further, baseband circuitry 2220 may include a baseband orphysical layer (PHY) processing circuit 2256 for PHY link layerprocessing of respective receive/transmit signals. Baseband circuitry2220 may include, for example, a processing circuit 2228 for mediumaccess control (MAC)/data link layer processing. Baseband circuitry 2220may include a memory controller 2232 for communicating with processingcircuit 2228 and/or a computing platform 2230, for example, via one ormore interfaces 2234.

In some embodiments, PHY processing circuit 2226 may include a frameconstruction and/or detection module, in combination with additionalcircuitry such as a buffer memory, to construct and/or deconstructcommunication frames, such as radio frames. Alternatively or inaddition, MAC processing circuit 2228 may share processing for certainof these functions or perform these processes independent of PHYprocessing circuit 2226. In some embodiments, MAC and PHY processing maybe integrated into a single circuit.

The computing platform 2230 may provide computing functionality for thedevice 2200. As shown, the computing platform 2230 may include aprocessing component 2240. In addition to, or alternatively of, thebaseband circuitry 2220, the device 2200 may execute processingoperations or logic for the system 100 and logic circuit 2235 using theprocessing component 2240. The processing component 2240 (and/or PHY2226 and/or MAC 2228) may comprise various hardware elements, softwareelements, or a combination of both. Examples of hardware elements mayinclude devices, logic devices, components, processors, microprocessors,circuits, processor circuits, circuit elements (e.g., transistors,resistors, capacitors, inductors, and so forth), integrated circuits,application specific integrated circuits (ASIC), programmable logicdevices (PLD), digital signal processors (DSP), field programmable gatearray (FPGA), memory units, logic gates, registers, semiconductordevice, chips, microchips, chip sets, and so forth. Examples of softwareelements may include software components, programs, applications,computer programs, application programs, system programs, softwaredevelopment programs, machine programs, operating system software,middleware, firmware, software modules, routines, subroutines,functions, methods, procedures, software interfaces, application programinterfaces (API), instruction sets, computing code, computer code, codesegments, computer code segments, words, values, symbols, or anycombination thereof. Determining whether an embodiment is implementedusing hardware elements and/or software elements may vary in accordancewith any number of factors, such as desired computational rate, powerlevels, heat tolerances, processing cycle budget, input data rates,output data rates, memory resources, data bus speeds and other design orperformance constraints, as desired for a given implementation.

The computing platform 2230 may further include other platformcomponents 2250. Other platform components 2250 include common computingelements, such as one or more processors, multi-core processors,co-processors, memory units, chipsets, controllers, peripherals,interfaces, oscillators, timing devices, video cards, audio cards,multimedia input/output (I/O) components (e.g., digital displays), powersupplies, and so forth. Examples of memory units may include withoutlimitation various types of computer readable and machine readablestorage media in the form of one or more higher speed memory units, suchas read-only memory (ROM), random-access memory (RAM), dynamic RAM(DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), staticRAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM),electrically erasable programmable ROM (EEPROM), flash memory, polymermemory such as ferroelectric polymer memory, ovonic memory, phase changeor ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS)memory, magnetic or optical cards, an array of devices such as RedundantArray of Independent Disks (RAID) drives, solid state memory devices(e.g., USB memory, solid state drives (SSD) and any other type ofstorage media suitable for storing information.

Device 2200 may be, for example, an ultra-mobile device, a mobiledevice, a fixed device, a machine-to-machine (M2M) device, a personaldigital assistant (PDA), a mobile computing device, a smart phone, atelephone, a digital telephone, a cellular telephone, user equipment,eBook readers, a handset, a one-way pager, a two-way pager, a messagingdevice, a computer, a personal computer (PC), a desktop computer, alaptop computer, a notebook computer, a netbook computer, a handheldcomputer, a tablet computer, a server, a server array or server farm, aweb server, a network server, an Internet server, a work station, amini-computer, a main frame computer, a supercomputer, a networkappliance, a web appliance, a distributed computing system,multiprocessor systems, processor-based systems, consumer electronics,programmable consumer electronics, game devices, television, digitaltelevision, set top box, wireless access point, base station, node B,evolved node B (eNB), subscriber station, mobile subscriber center,radio network controller, router, hub, gateway, bridge, switch, machine,or combination thereof. Accordingly, functions and/or specificconfigurations of device 2200 described herein, may be included oromitted in various embodiments of device 2200, as suitably desired. Insome embodiments, device 2200 may be configured to be compatible withprotocols and frequencies associated one or more of the 3GPP LTESpecifications and/or IEEE 2202.16 Standards for WMANs, and/or otherbroadband wireless networks, cited herein, although the embodiments arenot limited in this respect.

Embodiments of device 2200 may be implemented using single input singleoutput (SISO) architectures. However, certain implementations mayinclude multiple antennas (e.g., antennas 2218) for transmission and/orreception using adaptive antenna techniques for beamforming or spatialdivision multiple access (SDMA) and/or using MIMO communicationtechniques.

The components and features of device 2200 may be implemented using anycombination of discrete circuitry, application specific integratedcircuits (ASICs), logic gates and/or single chip architectures. Further,the features of device 2200 may be implemented using microcontrollers,programmable logic arrays and/or microprocessors or any combination ofthe foregoing where suitably appropriate. It is noted that hardware,firmware and/or software elements may be collectively or individuallyreferred to herein as “logic” or “circuit.”

It should be appreciated that the exemplary device 2200 shown in theblock diagram of FIG. 22 may represent one functionally descriptiveexample of many potential implementations. Accordingly, division,omission or inclusion of block functions depicted in the accompanyingfigures does not infer that the hardware components, circuits, softwareand/or elements for implementing these functions would be necessarily bedivided, omitted, or included in embodiments.

A computer-implemented method may comprise receiving, at a networkinterface on a commerce intermediary server, an order request packagefrom a client device, the order request package specifying a useraccount and a commerce account, the user account associated with a userentity in a social graph data structure, the commerce account associatedwith a commerce entity in the social graph data structure; transmittingthe order request package to a commerce front-end server associated withthe commerce entity; and creating a commerce edge in the social graphdata structure between the user entity and the commerce entity inresponse to receiving the order request package from the client device,the commerce edge associated with the order request package.

A computer-implemented method may further comprise receiving at amessaging server a message package, the message package addressed to theuser account, the message package received from the commerce front-endserver; determining that the commerce front-end server is authorized tomessage the user account based on the commerce edge in the social graphdata structure between the user entity and the commerce entity; andtransmitting the message package to the client device based on thedetermination that the commerce front-end server is authorized tomessage the user account based on the commerce edge in the social graphdata structure between the user entity and the commerce entity.

A computer-implemented method may further comprise the message packagereceived at the messaging server from the commerce front-end server viathe commerce intermediary server.

A computer-implemented method may further comprise the message packagecomprising an order fulfillment package in response to the order requestpackage.

A computer-implemented method may further comprise the order fulfillmentpackage comprising an online fulfillment notification indicating that anonline service contracted by the order request package has beenfulfilled.

A computer-implemented method may further comprise the order fulfillmentpackage comprising an in-person fulfillment notification indicating thatat least one of an in-person service or an in-person product contractedby the order request package is ready for receipt at a particularlocation.

A computer-implemented method may further comprise the order fulfillmentpackage comprising a machine-readable optical label, the machinereadable optical label encoding an order identifier assigned to theorder request package.

A computer-implemented method may further comprise transmitting abusiness application package to the client device, the businessapplication package defining an order request format and order requestoptions for the order request package.

A computer-implemented method may further comprise the businessapplication package transmitted to the client device in response to afollow request received from the client device.

A computer-implemented method may further comprise the businessapplication package comprising one or more of address informationassociated with the commerce entity, contact information associated withthe commerce entity, and a product manifest associated with the commerceentity.

A computer-implemented method may further comprise the businessapplication package comprising a product manifest associated with thecommerce entity, the product manifest comprising a plurality ofproducts, wherein each of the products is associated with a price,wherein one or more of the plurality of products is associated with oneor more product options.

A computer-implemented method may further comprise receiving ageographic location of the client device; and selecting automatically atleast one of the one or more product options based on the receivedgeographic location.

A computer-implemented method may further comprise receiving ageographic location for the client device from the client device at alocation-based services server; and transmitting the businessapplication package to the client device based on the geographiclocation corresponding to the commerce entity.

A computer-implemented method may further comprise receiving a pagefollow request for the user account; creating a following edge in thesocial graph data structure between the user entity and the commerceentity in the social graph data structure; and transmitting the businessapplication package to the client device based on the page followrequest.

A computer-implemented method may further comprise performing a commerceaffinity analysis for the commerce entity based on the social graph datastructure; and transmitting the business application package to theclient device based on the commerce affinity analysis predicting acommerce affinity between the user entity and the commerce entity.

A computer-implemented method may further comprise the commerce affinityanalysis comprising one or more explicit affinity symbols in the socialgraph data structure and one or more implicit affinity symbols in thesocial graph data structure.

A computer-implemented method may further comprise performing afinancial transaction with a financial transaction server based on theorder request package; and inserting a financial transaction record forthe financial transaction into the order request package prior totransmitting the order request package to the commerce front-end server.

A computer-implemented method may further comprise retrieving a defaultpayment configuration record for the user account; and performing thefinancial transaction using the default payment configuration record.

A computer-implemented method may further comprise the order requestpackage comprising a payment configuration record.

A computer-implemented method may further comprise receiving a promotionpackage from the commerce intermediary server, the promotion packagedefining one or more user selection attributes; selecting the useraccount based on the user selection attributes; authorizing thetransmission of the promotion package to the user account based oncommerce edge in the social graph data structure between the user entityand the commerce entity; and messaging the user account with thepromotion package based on the authorizing of the transmission of thepromotion package.

An apparatus may comprise a processor circuit; a network interface; acommerce intermediary server operative on the processor circuit toreceive, from the network interface, an order request package from aclient device, the order request package specifying a user account and acommerce account, the user account associated with a user entity in asocial graph data structure, the commerce account associated with acommerce entity in the social graph data structure; and transmit theorder request package to a commerce front-end server associated with thecommerce entity; and a social graph data structure component operativeto create a commerce edge in the social graph data structure between theuser entity and the commerce entity in response to the commerceintermediary server receiving the order request package from the clientdevice, the commerce edge associated with the order request package. Theapparatus may be operative to implement any of the computer-implementedmethods described herein.

A computer-implemented method may comprise receiving a messaging packagefrom a messaging endpoint at a messaging service; performing a naturallanguage processing of the messaging package to determine a responsemessage predicted to correspond to the messaging package; determining anadministrator account assigned to respond to the messaging package; andtransmitting a form response package to an administrator messagingendpoint for the administrator account, the form response packagecomprising the response message.

A computer-implemented method may further comprise form response packageoperative to configure the administrator messaging endpoint to respondto the messaging package via the messaging service with the responsemessage.

A computer-implemented method may further comprise the administratormessaging endpoint operative to display an option to transmit theresponse message to the messaging endpoint.

A computer-implemented method may further comprise receiving aresponding messaging package from the administrator messaging endpoint,the responding messaging package comprising the response message.

A computer-implemented method may further comprise the response messagecomprising one or more dynamic fields, the receiving respondingmessaging package assigning one or more values to at least one of theone or more dynamic fields.

A computer-implemented method may further comprise the response messagecomprising one or more dynamic fields, further comprising: retrievinguser account information associated with the messaging endpoint; andassigning one or more values to at least one of the one or more dynamicfields based on the user account information.

A computer-implemented method may further comprise wherein performingthe natural language processing comprises submitting at least a portionof the messaging package to a natural language processor.

A computer-implemented method may further comprise the natural languageprocessor trained based on a messaging interaction history for themessaging service.

A computer-implemented method may further comprise receiving one or moremessaging intent keywords from the natural language processor; andretrieving the response message from a response message repository basedon the one or more messaging intent keywords.

A computer-implemented method may further comprise submitting aplurality of response messages to a natural language processor;receiving an intent keyword mapping from the natural language processorin response to submitting the plurality of response messages to thenatural language processor, the intent keyword mapping definingassociations between the plurality of response messages and a pluralityof intent keywords; and storing the defined associations between theplurality of response messages and the plurality of intent keywords in aresponse message repository.

A computer-implemented method may further comprise receiving aresponding messaging package from the administrator messaging endpoint;determining that the responding messaging package is not based on theresponse message; extracting an administrator-specified response messagefrom the responding messaging package; extracting a user message fromthe messaging package; submitting the user message and theadministrator-specified response message to the natural languageprocessor; receiving an additional keyword mapping from the naturallanguage processor, the additional keyword mapping defining anassociation between the administrator-specified response message and oneor more additional intent keywords; storing the administrator-specifiedresponse message in the response message repository; and storing theassociation between the administrator-specified response message and theone or more additional intent keywords in the response messagerepository.

A computer-implemented method may further comprise receiving aresponding messaging package from the administrator messaging endpoint;determining whether the responding messaging package uses the responsemessage; and training the natural language processor based on whetherthe responding messaging package uses the response message.

A computer-implemented method may further comprise the natural languageprocessing of the messaging package determining one or more intentkeywords and one or more parameters, further comprising: configuring anautomated commerce interaction based on the one or more intent keywordsand the one or more parameters.

A computer-implemented method may further comprise the automatedcommerce interaction comprising a reservation or a purchase.

A computer-implemented method may further comprise determining a productobject from a product catalog based on at least one the one or moreintent keywords and the one or more parameters, the automated commerceinteraction incorporating the product object.

An apparatus may comprise a processor circuit on a device; a networkinterface; a commerce intermediary server operative on the processorcircuit to receive, from the network interface, a messaging package froma messaging endpoint at a messaging service; perform a natural languageprocessing of the messaging package to determine a response messagepredicted to correspond to the messaging package; determine anadministrator account assigned to respond to the messaging package; andtransmit a form response package to an administrator messaging endpointfor the administrator account, the form response package comprising theresponse message. The apparatus may be operative to implement any of thecomputer-implemented methods described herein.

A computer-implemented method may comprise receiving a user contextassociated with a user account for a messaging service; retrieving auser profile for the user account; determining one or morerecommendations based on the user context and the user profile; andconfiguring a recommendation interface for a messaging endpoint on aclient device based on the recommendations, the messaging endpointassociated with the user account for the messaging service.

A computer-implemented method may further comprise the user profilecomprising a messaging affinity based on a messaging history for theuser account, wherein determining the one or more recommendations isbased on the messaging affinity.

A computer-implemented method may further comprise the user contextcomprising at least a geographic location for the client device, whereinat least one of the determined recommendations is for an interactionwith an entity selected based on being within a geographic search areadefined by the geographic location for the client device.

A computer-implemented method may further comprise the one or morerecommendations comprising one or more recommendations to interact withone or more categories of business entities.

A computer-implemented method may further comprise the one or morerecommendations comprising one or more recommendations to interact withone or more specific business entities.

A computer-implemented method may further comprise the one or morerecommendations comprising one or more recommendations to purchase oneor more specific products.

A computer-implemented method may further comprise the one or morerecommendations comprising one or more recommendations to purchase oneor more specific products from one or more specific business entities.

A computer-implemented method may further comprise the user contextcomprising at least a geographic location for the client device, theuser profile comprising a plurality of recommended products, the one ormore recommendations comprising recommendations to purchase one or moreof the recommended products from one or more business entities within ageographic search area defined by the geographic location.

A computer-implemented method may further comprise wherein one or morerecommended products of the plurality of recommended products aredetermined based on the one or more recommended products beingreferenced in a messaging history for the user account.

A computer-implemented method may further comprise the user profilecomprising a messaging history for the user account, the one or morerecommendations based at least in part on the messaging history.

A computer-implemented method may further comprise performing aconsumer-to-business messaging interaction in the messaging service;determining a referenced product recommended for a user of the useraccount in the consumer-to-business messaging interaction; and includingthe referenced product in the one or more recommendations, theconsumer-to-business messaging interaction comprising at least part ofthe user profile.

A computer-implemented method may further comprise the user contextcomprising at least a geographic location for the client device, theconsumer-to-business messaging interaction between the user account anda business entity account, further comprising: determining to includingthe referenced product from the consumer-to-business messaginginteraction based on the business entity account being associated with abusiness entity geographic location within a geographic search areadefined by the geographic location for the client device.

A computer-implemented method may further comprise receiving a selectedrecommendation from the client device, the selected recommendationcomprising one of the one or more recommendations; and initiating amessaging conversation in the messaging service between the messagingendpoint on the client device and a provider messaging endpointassociated with the selected recommendation, the messaging conversationautomatically including the selected recommendation.

A computer-implemented method may further comprise receiving arecommendation acceptance message from the messaging endpoint on theclient device regarding acceptance of the selected recommendation;transmitting the recommendation acceptance message to the providermessaging endpoint; and receiving a fulfillment update message from theprovider messaging endpoint regarding fulfillment of the selectedrecommendation.

A computer-implemented method may further comprise determining aplurality of relevant products based on the user profile and the usercontext; and determining the one or more recommendations ashighest-paying recommendations of the plurality of relevant products.

A computer-implemented method may further comprise determining aplurality of relevant business entities based on the user profile andthe user context; and determining the one or more recommendations basedon message-open-rates for the user account for the plurality of relevantbusiness entities.

An apparatus may comprise a processor circuit on a device; a usercontext component operative on the processor circuit to manage a usercontext associated with a user account for a messaging service; a userprofile component operative to retrieve a user profile for the useraccount; and a recommendation component operative to determine one ormore recommendations based on the user context and the user profile andconfigure a recommendation interface for a messaging endpoint on aclient device based on the recommendations, the messaging endpointassociated with the user account for the messaging service. Theapparatus may be operative to implement any of the computer-implementedmethods described herein.

A computer-implemented method may comprise receiving a user profileassociated with a user account for a messaging service; receiving amessaging initiation from a messaging endpoint on a client device; andconfiguring an automated response based on the user profile in responseto the messaging initiation.

A computer-implemented method may further comprise wherein configuringthe automated response comprises extracting one or more customizationelements from the user profile and basing the automated response on theextracted one or more customization elements, the one or morecustomization element comprising one or more of a name, an address, adate of birth, and a location.

A computer-implemented method may further comprise determining that theautomated response is operative to be configured according to a userinformation element; determining that the user information element isnot specified in the user profile; and prompting specification of theuser information element for the user profile in response to determiningthat the automated response is operative to be configured according tothe user information element and that the user information element isnot specified in the user profile.

A computer-implemented method may further comprise wherein configuringthe automated response further comprises determining a currentgeographic location associated with the user account.

A computer-implemented method may further comprise the messagingendpoint comprising a messaging widget embedded in a third-partywebpage, further comprising: performing an automated interaction via themessaging widget based on the configured automated response.

A computer-implemented method may further comprise identifying the useraccount based on a web cookie.

A computer-implemented method may further comprise the automatedresponse generated based on at least one of a decision tree and a finitestate machine.

A computer-implemented method may further comprise the automatedresponse created by an administrator interface to the messaging service.

A computer-implemented method may further comprise receiving a commercetransaction instruction as part of the automated response; andinitiating a commerce transaction confirmation dialog in response to thecommerce transaction instruction.

A computer-implemented method may further comprise displaying anadvertisement; receiving a user selection of the advertisement; andinstantiating the messaging endpoint in response to the user selectionof the advertisement.

A computer-implemented method may further comprise the automatedresponse selected from a plurality of automated responses based on adelivery address field of the messaging initiation.

A computer-implemented method may further comprise performing anautomated interaction via the messaging endpoint based on the configuredautomated response; recording the automated interaction; and displayingthe recorded automated interaction via an administrator interface forthe automated response.

A computer-implemented method may further comprise performing anautomated interaction via the messaging endpoint based on the configuredautomated response; determining that a current state for the automatedinteraction indicates administrator notification; and transmitting anotification to an administrator account in response to determining thatthe current state for the automated interaction indicates administratornotification.

A computer-implemented method may further comprise determining theadministrator account from a plurality of administrator accounts basedon user information from the user profile, the user informationcomprising at least one of a user location and user demographicinformation.

An apparatus may comprise a processor circuit on a device; a userprofile component operative on the processor circuit to retrieve a userprofile associated with a user account for a messaging service; and amessaging automation component operative to receive a messaginginitiation from a messaging endpoint on a client device; and configurean automated response based on the user profile in response to themessaging initiation. The apparatus may be operative to implement any ofthe computer-implemented methods described herein.

At least one computer-readable storage medium may comprise instructionsthat, when executed, cause a system to perform any of thecomputer-implemented methods described herein.

Some embodiments may be described using the expression “one embodiment”or “an embodiment” along with their derivatives. These terms mean that aparticular feature, structure, or characteristic described in connectionwith the embodiment is included in at least one embodiment. Theappearances of the phrase “in one embodiment” in various places in thespecification are not necessarily all referring to the same embodiment.Further, some embodiments may be described using the expression“coupled” and “connected” along with their derivatives. These terms arenot necessarily intended as synonyms for each other. For example, someembodiments may be described using the terms “connected” and/or“coupled” to indicate that two or more elements are in direct physicalor electrical contact with each other. The term “coupled,” however, mayalso mean that two or more elements are not in direct contact with eachother, but yet still co-operate or interact with each other.

With general reference to notations and nomenclature used herein, thedetailed descriptions herein may be presented in terms of programprocedures executed on a computer or network of computers. Theseprocedural descriptions and representations are used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art.

A procedure is here, and generally, conceived to be a self-consistentsequence of operations leading to a desired result. These operations arethose requiring physical manipulations of physical quantities. Usually,though not necessarily, these quantities take the form of electrical,magnetic or optical signals capable of being stored, transferred,combined, compared, and otherwise manipulated. It proves convenient attimes, principally for reasons of common usage, to refer to thesesignals as bits, values, elements, symbols, characters, terms, numbers,or the like. It should be noted, however, that all of these and similarterms are to be associated with the appropriate physical quantities andare merely convenient labels applied to those quantities.

Further, the manipulations performed are often referred to in terms,such as adding or comparing, which are commonly associated with mentaloperations performed by a human operator. No such capability of a humanoperator is necessary, or desirable in most cases, in any of theoperations described herein which form part of one or more embodiments.Rather, the operations are machine operations. Useful machines forperforming operations of various embodiments include general purposedigital computers or similar devices.

Various embodiments also relate to apparatus or systems for performingthese operations. This apparatus may be specially constructed for therequired purpose or it may comprise a general purpose computer asselectively activated or reconfigured by a computer program stored inthe computer. The procedures presented herein are not inherently relatedto a particular computer or other apparatus. Various general purposemachines may be used with programs written in accordance with theteachings herein, or it may prove convenient to construct morespecialized apparatus to perform the required method steps. The requiredstructure for a variety of these machines will appear from thedescription given.

It is emphasized that the Abstract of the Disclosure is provided toallow a reader to quickly ascertain the nature of the technicaldisclosure. It is submitted with the understanding that it will not beused to interpret or limit the scope or meaning of the claims. Inaddition, in the foregoing Detailed Description, it can be seen thatvarious features are grouped together in a single embodiment for thepurpose of streamlining the disclosure. This method of disclosure is notto be interpreted as reflecting an intention that the claimedembodiments require more features than are expressly recited in eachclaim. Rather, as the following claims reflect, inventive subject matterlies in less than all features of a single disclosed embodiment. Thusthe following claims are hereby incorporated into the DetailedDescription, with each claim standing on its own as a separateembodiment. In the appended claims, the terms “including” and “in which”are used as the plain-English equivalents of the respective terms“comprising” and “wherein,” respectively. Moreover, the terms “first,”“second,” “third,” and so forth, are used merely as labels, and are notintended to impose numerical requirements on their objects.

What has been described above includes examples of the disclosedarchitecture. It is, of course, not possible to describe everyconceivable combination of components and/or methodologies, but one ofordinary skill in the art may recognize that many further combinationsand permutations are possible. Accordingly, the novel architecture isintended to embrace all such alterations, modifications and variationsthat fall within the spirit and scope of the appended claims.

What is claimed is:
 1. A computer-implemented method, comprising:receiving, at a network interface on a commerce intermediary server, anorder request package from a client device, the order request packagespecifying a user account and a commerce account, the user accountassociated with a user entity in a social graph data structure, thecommerce account associated with a commerce entity in the social graphdata structure; transmitting the order request package to a commercefront-end server associated with the commerce entity; and creating acommerce edge in the social graph data structure between the user entityand the commerce entity in response to receiving the order requestpackage from the client device, the commerce edge associated with theorder request package.
 2. The method of claim 1, comprising: receivingat a messaging server a message package, the message package addressedto the user account, the message package received from the commercefront-end server; determining that the commerce front-end server isauthorized to message the user account based on the commerce edge in thesocial graph data structure between the user entity and the commerceentity; and transmitting the message package to the client device basedon the determination that the commerce front-end server is authorized tomessage the user account based on the commerce edge in the social graphdata structure between the user entity and the commerce entity.
 3. Themethod of claim 2, the message package comprising an order fulfillmentpackage in response to the order request package.
 4. The method of claim1, further comprising: transmitting a business application package tothe client device, the business application package defining an orderrequest format and order request options for the order request package.5. The method of claim 4, the business application package comprising aproduct manifest associated with the commerce entity, the productmanifest comprising a plurality of products, wherein each of theproducts is associated with a price, wherein one or more of theplurality of products is associated with one or more product options. 6.The method of claim 4, further comprising: receiving a geographiclocation for the client device from the client device at alocation-based services server; and transmitting the businessapplication package to the client device based on the geographiclocation corresponding to the commerce entity.
 7. The method of claim 4,further comprising: receiving a page follow request for the useraccount; creating a following edge in the social graph data structurebetween the user entity and the commerce entity in the social graph datastructure; and transmitting the business application package to theclient device based on the page follow request.
 8. The method of claim4, further comprising: performing a commerce affinity analysis for thecommerce entity based on the social graph data structure; andtransmitting the business application package to the client device basedon the commerce affinity analysis predicting a commerce affinity betweenthe user entity and the commerce entity.
 9. The method of claim 1,further comprising: performing a financial transaction with a financialtransaction server based on the order request package; and inserting afinancial transaction record for the financial transaction into theorder request package prior to transmitting the order request package tothe commerce front-end server.
 10. The method of claim 1, furthercomprising: receiving a promotion package from the commerce intermediaryserver, the promotion package defining one or more user selectionattributes; selecting the user account based on the user selectionattributes; authorizing the transmission of the promotion package to theuser account based on commerce edge in the social graph data structurebetween the user entity and the commerce entity; and messaging the useraccount with the promotion package based on the authorizing of thetransmission of the promotion package.
 11. An apparatus, comprising: aprocessor circuit; a network interface; a commerce intermediary serveroperative on the processor circuit to receive, from the networkinterface, an order request package from a client device, the orderrequest package specifying a user account and a commerce account, theuser account associated with a user entity in a social graph datastructure, the commerce account associated with a commerce entity in thesocial graph data structure; and transmit the order request package to acommerce front-end server associated with the commerce entity; and asocial graph data structure component operative to create a commerceedge in the social graph data structure between the user entity and thecommerce entity in response to the commerce intermediary serverreceiving the order request package from the client device, the commerceedge associated with the order request package.
 12. The apparatus ofclaim 11, further comprising: a message server operative to receive amessage package, the message package addressed to the user account, themessage package received from the commerce front-end server; determinethat the commerce front-end server is authorized to message the useraccount based on the commerce edge in the social graph data structurebetween the user entity and the commerce entity; and transmit themessage package to the client device based on the determination that thecommerce front-end server is authorized to message the user accountbased on the commerce edge in the social graph data structure betweenthe user entity and the commerce entity.
 13. The apparatus of claim 11,further comprising: the commerce intermediary server operative toreceive a geographic location for the client device and transmit abusiness application package to the client device based on thegeographic location corresponding to the commerce entity, the businessapplication package defining an order request format and order requestoptions for the order request package.
 14. The apparatus of claim 11,further comprising: the commerce intermediary server operative toreceive a page follow request for the user account; create a followingedge in the social graph data structure between the user entity and thecommerce entity in the social graph data structure; and transmit abusiness application package to the client device based on the pagefollow request, the business application package defining an orderrequest format and order request options for the order request package.15. The apparatus of claim 11, further comprising: the commerceintermediary server operative to perform a financial transaction with afinancial transaction server based on the order request package andinsert a financial transaction record for the financial transaction intothe order request package prior to transmitting the order requestpackage to the commerce front-end server.
 16. The apparatus of claim 11,further comprising: the commerce intermediary server operative toreceive a promotion package from the commerce intermediary server, thepromotion package defining one or more user selection attributes; selectthe user account based on the user selection attributes; authorize thetransmission of the promotion package to the user account based oncommerce edge in the social graph data structure between the user entityand the commerce entity; and message the user account with the promotionpackage based on the authorizing of the transmission of the promotionpackage.
 17. At least one computer-readable storage medium comprisinginstructions that, when executed, cause a system to: receive, at anetwork interface on a commerce intermediary server, an order requestpackage from a client device, the order request package specifying auser account and a commerce account, the user account associated with auser entity in a social graph data structure, the commerce accountassociated with a commerce entity in the social graph data structure;transmit the order request package to a commerce front-end serverassociated with the commerce entity; and create a commerce edge in thesocial graph data structure between the user entity and the commerceentity in response to receiving the order request package from theclient device, the commerce edge associated with the order requestpackage.
 18. The computer-readable storage medium of claim 17,comprising further instructions that, when executed, cause a system to:receive a geographic location for the client device; and transmit abusiness application package to the client device based on thegeographic location corresponding to the commerce entity, the businessapplication package defining an order request format and order requestoptions for the order request package.
 19. The computer-readable storagemedium of claim 17, comprising further instructions that, when executed,cause a system to: receive a page follow request for the user account;create a following edge in the social graph data structure between theuser entity and the commerce entity in the social graph data structure;and transmit a business application package to the client device basedon the page follow request, the business application package defining anorder request format and order request options for the order requestpackage.
 20. The computer-readable storage medium of claim 17,comprising further instructions that, when executed, cause a system to:receive a promotion package from the commerce intermediary server, thepromotion package defining one or more user selection attributes; selectthe user account based on the user selection attributes; authorize thetransmission of the promotion package to the user account based oncommerce edge in the social graph data structure between the user entityand the commerce entity; and message the user account with the promotionpackage based on the authorizing of the transmission of the promotionpackage.